diff zlib/examples/gzappend.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents ae3a4bfb450b
children
line wrap: on
line diff
--- a/zlib/examples/gzappend.c	Sun Aug 21 07:07:55 2011 +0900
+++ b/zlib/examples/gzappend.c	Fri Oct 27 22:46:09 2017 +0900
@@ -1,7 +1,7 @@
 /* gzappend -- command to append to a gzip file
 
-  Copyright (C) 2003 Mark Adler, all rights reserved
-  version 1.1, 4 Nov 2003
+  Copyright (C) 2003, 2012 Mark Adler, all rights reserved
+  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,6 +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  11 Oct 2012     - Fix for proper z_const usage
+ *                      - Check for input buffer malloc failure
  */
 
 /*
@@ -170,7 +172,7 @@
     int size;                   /* 1 << size is bytes in buf */
     unsigned left;              /* bytes available at next */
     unsigned char *buf;         /* buffer */
-    unsigned char *next;        /* next byte in buffer */
+    z_const unsigned char *next;    /* next byte in buffer */
     char *name;                 /* file name for error messages */
 } file;
 
@@ -399,14 +401,14 @@
     }
 
     /* 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",
@@ -453,7 +455,7 @@
 
     /* clean up and return */
     free(out);
-    if (in != NULL) free(in);
+    free(in);
     if (fd > 0) close(fd);
 }
 
@@ -467,11 +469,13 @@
     z_stream strm;
 
     /* ignore command name */
-    argv++;
+    argc--; 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;