summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Youngman <jay@gnu.org>2011-06-01 11:25:27 +0100
committerJames Youngman <jay@gnu.org>2011-06-01 11:25:27 +0100
commitf4171f93f146a71678fd381f628ca2eb2a7b841e (patch)
tree86268d4902636ec76fbddabb75ab9cdc12148694
parentd30da49b0026be4c48c612229d022bee8f3e516c (diff)
downloadfindutils-f4171f93f146a71678fd381f628ca2eb2a7b841e.tar.gz
Better error handling for the result of set_fstype_devno.
* find/fstype.c (file_system_type_uncached): If set_fstype_devno fails for an entry (that is, the device number stays at -1) don't consider it a match. (get_mounted_filesystems): Don't call set_fstype_devno since we don't need to check the device number. (get_mounted_devices): If set_fstype_devno fails for a file system, don't return it.
-rw-r--r--ChangeLog11
-rw-r--r--find/fstype.c19
2 files changed, 22 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 24b34727..dd8e3415 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2011-06-01 James Youngman <jay@gnu.org>
+
+ Better error handling for the result of set_fstype_devno.
+ * find/fstype.c (file_system_type_uncached): If set_fstype_devno
+ fails for an entry (that is, the device number stays at -1) don't
+ consider it a match.
+ (get_mounted_filesystems): Don't call set_fstype_devno since we
+ don't need to check the device number.
+ (get_mounted_devices): If set_fstype_devno fails for a file
+ system, don't return it.
+
2011-05-31 James Youngman <jay@gnu.org>
import-gnulib.sh now stops if it sees the old directory layout.
diff --git a/find/fstype.c b/find/fstype.c
index 3a3985f3..fc8c09ca 100644
--- a/find/fstype.c
+++ b/find/fstype.c
@@ -235,11 +235,13 @@ file_system_type_uncached (const struct stat *statp, const char *path)
if (!strcmp (entry->me_type, MNTTYPE_IGNORE))
continue;
#endif
- set_fstype_devno (entry);
- if (entry->me_dev == statp->st_dev)
+ if (0 == set_fstype_devno (entry))
{
- type = xstrdup (entry->me_type);
- break;
+ if (entry->me_dev == statp->st_dev)
+ {
+ type = xstrdup (entry->me_type);
+ break;
+ }
}
}
free_file_system_list (entries);
@@ -269,7 +271,6 @@ get_mounted_filesystems (void)
if (!strcmp (entry->me_type, MNTTYPE_IGNORE))
continue;
#endif
- set_fstype_devno (entry);
len = strlen (entry->me_mountdir) + 1;
p = extendbuf (result, used+len, &alloc_size);
@@ -312,9 +313,11 @@ get_mounted_devices (size_t *n)
if (p)
{
result = p;
- set_fstype_devno (entry);
- result[used] = entry->me_dev;
- ++used;
+ if (0 == set_fstype_devno (entry))
+ {
+ result[used] = entry->me_dev;
+ ++used;
+ }
}
else
{