Skip to content

Commit

Permalink
Check for input buffer malloc failure in examples/gzappend.c.
Browse files Browse the repository at this point in the history
  • Loading branch information
madler committed Oct 11, 2012
1 parent c488863 commit e69a9ce
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions examples/gzappend.c
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
*/

/*
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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);
}

Expand All @@ -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;
Expand Down

0 comments on commit e69a9ce

Please sign in to comment.