Merge pull request #4158 from facebook/benchzstd_fclose

fix missing fclose()
This commit is contained in:
Yann Collet
2024-10-02 16:49:43 -07:00
committed by GitHub
+21 -16
View File
@@ -1067,11 +1067,12 @@ static int BMK_loadFiles(
size_t pos = 0, totalSize = 0; size_t pos = 0, totalSize = 0;
unsigned n; unsigned n;
for (n = 0; n < nbFiles; n++) { for (n = 0; n < nbFiles; n++) {
const char* const filename = fileNamesTable[n];
U64 fileSize = UTIL_getFileSize( U64 fileSize = UTIL_getFileSize(
fileNamesTable[n]); /* last file may be shortened */ filename); /* last file may be shortened */
if (UTIL_isDirectory(fileNamesTable[n])) { if (UTIL_isDirectory(filename)) {
DISPLAYLEVEL( DISPLAYLEVEL(
2, "Ignoring %s directory... \n", fileNamesTable[n]); 2, "Ignoring %s directory... \n", filename);
fileSizes[n] = 0; fileSizes[n] = 0;
continue; continue;
} }
@@ -1079,25 +1080,29 @@ static int BMK_loadFiles(
DISPLAYLEVEL( DISPLAYLEVEL(
2, 2,
"Cannot evaluate size of %s, ignoring ... \n", "Cannot evaluate size of %s, ignoring ... \n",
fileNamesTable[n]); filename);
fileSizes[n] = 0; fileSizes[n] = 0;
continue; continue;
} }
{ if (fileSize > bufferSize - pos) {
FILE* const f = fopen(fileNamesTable[n], "rb"); /* buffer too small - limit quantity loaded */
if (f == NULL) fileSize = bufferSize - pos;
nbFiles = n; /* stop after this file */
}
{ FILE* const f = fopen(filename, "rb");
if (f == NULL) {
RETURN_ERROR_INT( RETURN_ERROR_INT(
10, "impossible to open file %s", fileNamesTable[n]); 10, "cannot open file %s", filename);
OUTPUTLEVEL(2, "Loading %s... \r", fileNamesTable[n]); }
if (fileSize > bufferSize - pos) OUTPUTLEVEL(2, "Loading %s... \r", filename);
fileSize = bufferSize - pos, { size_t const readSize =
nbFiles = n; /* buffer too small - stop after this file */
{
size_t const readSize =
fread(((char*)buffer) + pos, 1, (size_t)fileSize, f); fread(((char*)buffer) + pos, 1, (size_t)fileSize, f);
if (readSize != (size_t)fileSize) if (readSize != (size_t)fileSize) {
fclose(f);
RETURN_ERROR_INT( RETURN_ERROR_INT(
11, "could not read %s", fileNamesTable[n]); 11, "invalid read %s", filename);
}
pos += readSize; pos += readSize;
} }
fileSizes[n] = (size_t)fileSize; fileSizes[n] = (size_t)fileSize;