summaryrefslogtreecommitdiff
path: root/utils/filename.c
diff options
context:
space:
mode:
authorRob Kendrick <rjek@netsurf-browser.org>2007-06-10 11:28:44 +0000
committerRob Kendrick <rjek@netsurf-browser.org>2007-06-10 11:28:44 +0000
commit47f9ee35819c4259edc75dac1f6adf414ae6808b (patch)
tree1e376761976e58ff10d0ee63dee158f0dab54b44 /utils/filename.c
parent818a74417848213d30adf1a287557edee121b32f (diff)
downloadnetsurf-47f9ee35819c4259edc75dac1f6adf414ae6808b.tar.gz
netsurf-47f9ee35819c4259edc75dac1f6adf414ae6808b.tar.bz2
Check return value of stat() in filename.c and report oddness using LOG
svn path=/trunk/netsurf/; revision=3318
Diffstat (limited to 'utils/filename.c')
-rw-r--r--utils/filename.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/utils/filename.c b/utils/filename.c
index 52caa1e41..ce8afc00e 100644
--- a/utils/filename.c
+++ b/utils/filename.c
@@ -16,6 +16,7 @@
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
+#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -225,7 +226,10 @@ bool filename_flush_directory(const char *folder, int depth) {
continue;
snprintf(child, 256, "%s/%s", folder, entry->d_name);
- stat(child, &statbuf);
+ if (stat(child, &statbuf) == -1) {
+ LOG(("Unable to stat %s, even though it just got returned from readdir(): %s", child, strerror(errno)));
+ continue;
+ }
/* first 3 depths are directories only, then files only */
if (depth < 3)
@@ -309,7 +313,11 @@ bool filename_delete_recursive(char *folder) {
(!strcmp(entry->d_name, "..")))
continue;
snprintf(child, 256, "%s/%s", folder, entry->d_name);
- stat(child, &statbuf);
+ if (stat(child, &statbuf) == -1) {
+ LOG(("Unable to stat %s, even though it just got returned from readdir(): %s", child, strerror(errno)));
+ continue;
+
+ }
if (S_ISDIR(statbuf.st_mode)) {
if (!filename_delete_recursive(child)) {
closedir(parent);