From: Paul Cruz Date: Mon, 12 Jun 2017 23:53:50 +0000 (-0700) Subject: refactoring for C90 syntax X-Git-Tag: v1.3.0~1^2~21^2~18^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=618a7b66e2977edc113516e0d362d517934e606e;p=thirdparty%2Fzstd.git refactoring for C90 syntax --- diff --git a/programs/fileio.c b/programs/fileio.c index 73912be5a..e49d0386f 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -891,36 +891,54 @@ int getFileInfo(fileInfo_t* info, const char* inFileName){ while(1){ BYTE magicNumberBuffer[4]; size_t numBytesRead = fread(magicNumberBuffer, 1, 4, srcFile); + U32 magicNumber; if(numBytesRead != 4) break; - U32 magicNumber = MEM_readLE32(magicNumberBuffer); + magicNumber = MEM_readLE32(magicNumberBuffer); if(magicNumber==ZSTD_MAGICNUMBER){ + BYTE frameHeaderDescriptor; + int frameContentSizeFlag; + int singleSegmentFlag; + int contentChecksumFlag; + int dictionaryIDFlag; int frameContentSizeBytes=0; + int windowDescriptorBytes; + int dictionaryIDBytes; + int totalFrameHeaderBytes; + BYTE* frameHeader; + U64 additional; + int lastBlock; + size_t readBytes = fread(&frameHeaderDescriptor, 1, 1, srcFile); info->numActualFrames++; - BYTE frameHeaderDescriptor; - fread(&frameHeaderDescriptor, 1, 1, srcFile); - + if(readBytes != 1){ + DISPLAY("There was an error with reading frame header descriptor\n"); + exit(1); + } /* calculate actual frame header size */ - int frameContentSizeFlag = frameHeaderDescriptor >> 6; - int singleSegmentFlag = (frameHeaderDescriptor & (1 << 5)) >> 5; - int contentChecksumFlag = (frameHeaderDescriptor & (1 << 2)) >> 2; - int dictionaryIDFlag = frameHeaderDescriptor & 3; + frameContentSizeFlag = frameHeaderDescriptor >> 6; + singleSegmentFlag = (frameHeaderDescriptor & (1 << 5)) >> 5; + contentChecksumFlag = (frameHeaderDescriptor & (1 << 2)) >> 2; + dictionaryIDFlag = frameHeaderDescriptor & 3; if(frameContentSizeFlag!=0){ frameContentSizeBytes = 1 << frameContentSizeFlag; } else if(singleSegmentFlag){ frameContentSizeBytes = 1; } - int windowDescriptorBytes = singleSegmentFlag ? 0 : 1; - int dictionaryIDBytes = dictionaryIDFlag ? 1 << (dictionaryIDFlag - 1): 0; - int totalFrameHeaderBytes = 4 + 1 + windowDescriptorBytes + frameContentSizeBytes + dictionaryIDBytes; + windowDescriptorBytes = singleSegmentFlag ? 0 : 1; + dictionaryIDBytes = dictionaryIDFlag ? 1 << (dictionaryIDFlag - 1): 0; + totalFrameHeaderBytes = 4 + 1 + windowDescriptorBytes + frameContentSizeBytes + dictionaryIDBytes; /* reset to beginning of from and read entire header */ fseek(srcFile, -5, SEEK_CUR); - BYTE* frameHeader = (BYTE*)malloc(totalFrameHeaderBytes); - fread(frameHeader, totalFrameHeaderBytes, 1, srcFile); + frameHeader = (BYTE*)malloc(totalFrameHeaderBytes); + readBytes = fread(frameHeader, 1, totalFrameHeaderBytes, srcFile); + if(readBytes != (size_t)totalFrameHeaderBytes){ + DISPLAY("There was an error reading the frame header\n"); + exit(1); + } /* get decompressed file size */ - U64 additional = ZSTD_getFrameContentSize(frameHeader, totalFrameHeaderBytes); + additional = ZSTD_getFrameContentSize(frameHeader, totalFrameHeaderBytes); if(additional!=ZSTD_CONTENTSIZE_UNKNOWN && additional!=ZSTD_CONTENTSIZE_ERROR){ info->decompressedSize += additional; } @@ -934,10 +952,14 @@ int getFileInfo(fileInfo_t* info, const char* inFileName){ } /* skip the rest of the blocks in the frame */ - int lastBlock = 0; + lastBlock = 0; do{ BYTE blockHeaderBuffer[3]; - fread(blockHeaderBuffer, 3, 1, srcFile); + readBytes = fread(blockHeaderBuffer, 1, 3, srcFile); + if(readBytes != 3){ + DISPLAY("There was a problem reading the block header\n"); + exit(1); + } U32 blockHeader = MEM_readLE24(blockHeaderBuffer); lastBlock = blockHeader & 1; int blockSize = (blockHeader - (blockHeader & 7)) >> 3; @@ -950,7 +972,11 @@ int getFileInfo(fileInfo_t* info, const char* inFileName){ else if(magicNumber==ZSTD_MAGIC_SKIPPABLE_START){ info->numSkippableFrames++; BYTE frameSizeBuffer[4]; - fread(frameSizeBuffer, 4, 1, srcFile); + size_t readBytes = fread(frameSizeBuffer, 1, 4, srcFile); + if(readBytes != 4){ + DISPLAY("There was an error reading skippable frame size"); + exit(1); + } long frameSize = MEM_readLE32(frameSizeBuffer); fseek(srcFile, frameSize, SEEK_CUR); } @@ -985,9 +1011,9 @@ int FIO_listFile(const char* inFileName, int displayLevel){ else{ DISPLAY("# Zstandard Frames: %d\n", info->numActualFrames); DISPLAY("# Skippable Frames: %d\n", info->numSkippableFrames); - DISPLAY("Compressed Size: %.2f MB (%lu B)\n", compressedSizeMB, info->compressedSize); + DISPLAY("Compressed Size: %.2f MB (%llu B)\n", compressedSizeMB, info->compressedSize); if(info->canComputeDecompSize){ - DISPLAY("Decompressed Size: %.2f MB (%lu B)\n", decompressedSizeMB, info->decompressedSize); + DISPLAY("Decompressed Size: %.2f MB (%llu B)\n", decompressedSizeMB, info->decompressedSize); DISPLAY("Ratio: %.4f\n", compressedSizeMB/decompressedSizeMB); } if(info->usesCheck){ diff --git a/programs/zstdcli.c b/programs/zstdcli.c index 74f2606bc..91bce8bb8 100644 --- a/programs/zstdcli.c +++ b/programs/zstdcli.c @@ -674,13 +674,13 @@ int main(int argCount, const char* argv[]) } #endif if(operation==zom_list){ - DISPLAY("===========================================\n"); - DISPLAY("Printing information about compressed files\n"); - DISPLAY("===========================================\n"); unsigned u; + DISPLAY("===========================================\n"); + DISPLAY("Printing information about compressed files\n"); + DISPLAY("===========================================\n"); DISPLAY("Number of files listed: %d\n", filenameIdx); for(u=0; u