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: d7b3707c61 "util/disk_cache: use stat() to check if entry is a directory"
Reviewed-by: Plamena Manolova <plamena.manolova@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
Timothy Arceri
2017-02-11 22:32:47 +11:00
committed by Emil Velikov
parent 0f53404565
commit 0cbde643eb
+4 -4
View File
@@ -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)