diff options
author | Timothy Arceri <[email protected]> | 2017-02-11 22:32:47 +1100 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2017-02-13 10:01:12 +0000 |
commit | 0cbde643eb29c8bf19eb8551ac8e821f7f733212 (patch) | |
tree | ff92b236cebd2654d4bb232a38d20419afd21e5b /src/util/disk_cache.c | |
parent | 0f53404565b9ef9da9d7022b5732463acd496742 (diff) |
util/disk_cache: correctly use stat(3)
I forgot to error check stat() and also I wasn't using the subdir in
is_two_character_sub_directory().
Fixes: d7b3707c612 "util/disk_cache: use stat() to check if entry is a directory"
Reviewed-by: Plamena Manolova <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/util/disk_cache.c')
-rw-r--r-- | src/util/disk_cache.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c index 42fe432b8c4..047a016006b 100644 --- a/src/util/disk_cache.c +++ b/src/util/disk_cache.c @@ -445,10 +445,10 @@ is_regular_non_tmp_file(struct dirent *entry, const char *path) return false; struct stat sb; - stat(filename, &sb); + int res = stat(filename, &sb); free(filename); - if (!S_ISREG(sb.st_mode)) + if (res == -1 || !S_ISREG(sb.st_mode)) return false; size_t len = strlen (entry->d_name); @@ -492,10 +492,10 @@ is_two_character_sub_directory(struct dirent *entry, const char *path) return false; struct stat sb; - stat(path, &sb); + int res = stat(subdir, &sb); free(subdir); - if (!S_ISDIR(sb.st_mode)) + if (res == -1 || !S_ISDIR(sb.st_mode)) return false; if (strlen(entry->d_name) != 2) |