Check for input buffer malloc failure in examples/gzappend.c.
This commit is contained in:
parent
c4888637ea
commit
e69a9ceee0
@ -1,7 +1,7 @@
|
||||
/* gzappend -- command to append to a gzip file
|
||||
|
||||
Copyright (C) 2003, 2012 Mark Adler, all rights reserved
|
||||
version 1.2, 13 Aug 2012
|
||||
version 1.2, 11 Oct 2012
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the author be held liable for any damages
|
||||
@ -39,7 +39,8 @@
|
||||
* - Keep gzip file clean on appended file read errors
|
||||
* - Use in-place rotate instead of auxiliary buffer
|
||||
* (Why you ask? Because it was fun to write!)
|
||||
* 1.2 13 Aug 2012 - Fix for proper z_const usage
|
||||
* 1.2 11 Oct 2012 - Fix for proper z_const usage
|
||||
* - Check for input buffer malloc failure
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -400,14 +401,14 @@ local void gztack(char *name, int gd, z_stream *strm, int last)
|
||||
}
|
||||
|
||||
/* allocate buffers */
|
||||
in = fd == -1 ? NULL : malloc(CHUNK);
|
||||
in = malloc(CHUNK);
|
||||
out = malloc(CHUNK);
|
||||
if (out == NULL) bye("out of memory", "");
|
||||
if (in == NULL || out == NULL) bye("out of memory", "");
|
||||
|
||||
/* compress input file and append to gzip file */
|
||||
do {
|
||||
/* get more input */
|
||||
len = fd == -1 ? 0 : read(fd, in, CHUNK);
|
||||
len = read(fd, in, CHUNK);
|
||||
if (len == -1) {
|
||||
fprintf(stderr,
|
||||
"gzappend warning: error reading %s, skipping rest ...\n",
|
||||
@ -454,7 +455,7 @@ local void gztack(char *name, int gd, z_stream *strm, int last)
|
||||
|
||||
/* clean up and return */
|
||||
free(out);
|
||||
if (in != NULL) free(in);
|
||||
free(in);
|
||||
if (fd > 0) close(fd);
|
||||
}
|
||||
|
||||
@ -472,7 +473,9 @@ int main(int argc, char **argv)
|
||||
|
||||
/* provide usage if no arguments */
|
||||
if (*argv == NULL) {
|
||||
printf("gzappend 1.1 (4 Nov 2003) Copyright (C) 2003 Mark Adler\n");
|
||||
printf(
|
||||
"gzappend 1.2 (11 Oct 2012) Copyright (C) 2003, 2012 Mark Adler\n"
|
||||
);
|
||||
printf(
|
||||
"usage: gzappend [-level] file.gz [ addthis [ andthis ... ]]\n");
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user