added error checking
This commit is contained in:
parent
0704df3259
commit
86bdcd83c1
@ -73,7 +73,7 @@ static void compressFile_orDie(const char* fname, const char* outName, int cLeve
|
|||||||
ZSTD_CStream* const cstream = ZSTD_createCStream();
|
ZSTD_CStream* const cstream = ZSTD_createCStream();
|
||||||
if (cstream==NULL) { fprintf(stderr, "ZSTD_createCStream() error \n"); exit(10); }
|
if (cstream==NULL) { fprintf(stderr, "ZSTD_createCStream() error \n"); exit(10); }
|
||||||
size_t const initResult = ZSTD_initCStream(cstream, cLevel);
|
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;
|
size_t read, toRead = buffInSize;
|
||||||
while( (read = fread_orDie(buffIn, toRead, fin)) ) {
|
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) {
|
while (input.pos < input.size) {
|
||||||
ZSTD_outBuffer output = { buffOut, buffOutSize, 0 };
|
ZSTD_outBuffer output = { buffOut, buffOutSize, 0 };
|
||||||
toRead = ZSTD_compressStream(cstream, &output , &input); /* toRead is guaranteed to be <= ZSTD_CStreamInSize() */
|
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 */
|
if (toRead > buffInSize) toRead = buffInSize; /* Safely handle when `buffInSize` is manually changed to a smaller value */
|
||||||
fwrite_orDie(buffOut, output.pos, fout);
|
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 };
|
ZSTD_outBuffer output = { buffOut, buffOutSize, 0 };
|
||||||
size_t const remainingToFlush = ZSTD_endStream(cstream, &output); /* close frame */
|
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);
|
fwrite_orDie(buffOut, output.pos, fout);
|
||||||
|
|
||||||
ZSTD_freeCStream(cstream);
|
ZSTD_freeCStream(cstream);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user