]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
added error checking
authorYann Collet <yann.collet.73@gmail.com>
Tue, 20 Sep 2016 09:54:29 +0000 (11:54 +0200)
committerYann Collet <yann.collet.73@gmail.com>
Tue, 20 Sep 2016 09:54:29 +0000 (11:54 +0200)
examples/streaming_compression.c

index d663a4914246cf64831b45106ef4320821af1567..108a63c8365c858f51ea12181f7786a3d373ef0e 100644 (file)
@@ -73,7 +73,7 @@ static void compressFile_orDie(const char* fname, const char* outName, int cLeve
     ZSTD_CStream* const cstream = ZSTD_createCStream();
     if (cstream==NULL) { fprintf(stderr, "ZSTD_createCStream() error \n"); exit(10); }
     size_t const initResult = ZSTD_initCStream(cstream, cLevel);
-    if (ZSTD_isError(initResult)) { fprintf(stderr, "ZSTD_initCStream() error \n"); exit(11); }
+    if (ZSTD_isError(initResult)) { fprintf(stderr, "ZSTD_initCStream() error : %s \n", ZSTD_getErrorName(initResult)); exit(11); }
 
     size_t read, toRead = buffInSize;
     while( (read = fread_orDie(buffIn, toRead, fin)) ) {
@@ -81,6 +81,7 @@ static void compressFile_orDie(const char* fname, const char* outName, int cLeve
         while (input.pos < input.size) {
             ZSTD_outBuffer output = { buffOut, buffOutSize, 0 };
             toRead = ZSTD_compressStream(cstream, &output , &input);   /* toRead is guaranteed to be <= ZSTD_CStreamInSize() */
+            if (ZSTD_isError(toRead)) { fprintf(stderr, "ZSTD_compressStream() error : %s \n", ZSTD_getErrorName(toRead)); exit(12); }
             if (toRead > buffInSize) toRead = buffInSize;   /* Safely handle when `buffInSize` is manually changed to a smaller value */
             fwrite_orDie(buffOut, output.pos, fout);
         }
@@ -88,7 +89,7 @@ static void compressFile_orDie(const char* fname, const char* outName, int cLeve
 
     ZSTD_outBuffer output = { buffOut, buffOutSize, 0 };
     size_t const remainingToFlush = ZSTD_endStream(cstream, &output);   /* close frame */
-    if (remainingToFlush) { fprintf(stderr, "not fully flushed"); exit(12); }
+    if (remainingToFlush) { fprintf(stderr, "not fully flushed"); exit(13); }
     fwrite_orDie(buffOut, output.pos, fout);
 
     ZSTD_freeCStream(cstream);