mirror of
https://github.com/facebook/zstd.git
synced 2025-07-30 22:23:13 +03:00
util.h: detect if an error occurs in readdir() (thanks to Jim Meyering)
This commit is contained in:
@ -284,6 +284,7 @@ UTIL_STATIC int UTIL_prepareFileList(const char *dirName, char** bufStart, size_
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
while ((entry = readdir(dir)) != NULL) {
|
while ((entry = readdir(dir)) != NULL) {
|
||||||
if (strcmp (entry->d_name, "..") == 0 ||
|
if (strcmp (entry->d_name, "..") == 0 ||
|
||||||
strcmp (entry->d_name, ".") == 0) continue;
|
strcmp (entry->d_name, ".") == 0) continue;
|
||||||
@ -310,8 +311,14 @@ UTIL_STATIC int UTIL_prepareFileList(const char *dirName, char** bufStart, size_
|
|||||||
}
|
}
|
||||||
// printf ("%s/%s nbFiles=%d left=%d\n", dirName, entry->d_name, nbFiles, (int)(bufEnd - *bufStart));
|
// printf ("%s/%s nbFiles=%d left=%d\n", dirName, entry->d_name, nbFiles, (int)(bufEnd - *bufStart));
|
||||||
}
|
}
|
||||||
|
errno = 0; // clear errno after UTIL_isDirectory, UTIL_prepareFileList
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (errno != 0) {
|
||||||
|
fprintf(stderr, "readdir(%s) error: %s\n", dirName, strerror(errno));
|
||||||
|
free(*bufStart);
|
||||||
|
*bufStart = NULL;
|
||||||
|
}
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
return nbFiles;
|
return nbFiles;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user