X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmountlist.c;h=b839cd17f1831a9f5a5b7289a0b7cd2c063291d4;hb=23eecb48e39afd0d267d64d40ba6bf97aa865e13;hp=8fb7e9ab747d5cf17e0964073aeeb6284215c268;hpb=47f4ca8fe9506254200028c8a8c5fffbf1bf1161;p=gnulib.git diff --git a/lib/mountlist.c b/lib/mountlist.c index 8fb7e9ab7..b839cd17f 100644 --- a/lib/mountlist.c +++ b/lib/mountlist.c @@ -128,8 +128,12 @@ # include #endif +#ifndef HAVE_HASMNTOPT +# define hasmntopt(mnt, opt) ((char *) 0) +#endif + #undef MNT_IGNORE -#if defined MNTOPT_IGNORE && defined HAVE_HASMNTOPT +#ifdef MNTOPT_IGNORE # define MNT_IGNORE(M) hasmntopt (M, MNTOPT_IGNORE) #else # define MNT_IGNORE(M) 0 @@ -942,6 +946,7 @@ read_file_system_list (bool need_fs_type) mtail = &me->me_next; } } + closedir (dirp); } #endif /* MOUNTED_INTERIX_STATVFS */ @@ -957,11 +962,7 @@ read_file_system_list (bool need_fs_type) while (mount_list) { me = mount_list->me_next; - free (mount_list->me_devname); - free (mount_list->me_mountdir); - if (mount_list->me_type_malloced) - free (mount_list->me_type); - free (mount_list); + free_mount_entry (mount_list); mount_list = me; } @@ -969,3 +970,14 @@ read_file_system_list (bool need_fs_type) return NULL; } } + +/* Free a mount entry as returned from read_file_system_list (). */ + +void free_mount_entry (struct mount_entry *me) +{ + free (me->me_devname); + free (me->me_mountdir); + if (me->me_type_malloced) + free (me->me_type); + free (me); +}