bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] mountlist: add support for deallocating returned list entries


From: Pádraig Brady
Subject: [PATCH] mountlist: add support for deallocating returned list entries
Date: Tue, 9 Jul 2013 14:03:08 +0100

* lib/mountlist.c (free_mount_entry): A new exported function
to deallocate a mount list entry.
* lib/mountlist.h: Declare the new function.
(read_file_system_list): Refactor to use the new deallocation function.
Suggested by Anton Ovchinnikov.
---
 ChangeLog       |    8 ++++++++
 lib/mountlist.c |   17 ++++++++++++-----
 lib/mountlist.h |    1 +
 3 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4247ec8..39fd40b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2013-07-09  Pádraig Brady  <address@hidden>
+
+       mountlist: add support for deallocating returned list entries
+       * lib/mountlist.c (free_mount_entry): A new exported function
+       to deallocate a mount list entry.
+       (read_file_system_list): Refactor to use the new deallocation function.
+       Suggested by Anton Ovchinnikov.
+
 2013-07-07  Paul Eggert  <address@hidden>
 
        stdalign, verify: port to FreeBSD 9.1, to C11, and to C++11
diff --git a/lib/mountlist.c b/lib/mountlist.c
index d8d5464..30f4286 100644
--- a/lib/mountlist.c
+++ b/lib/mountlist.c
@@ -961,11 +961,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;
       }
 
@@ -973,3 +969,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);
+}
diff --git a/lib/mountlist.h b/lib/mountlist.h
index ffdcc02..55877e2 100644
--- a/lib/mountlist.h
+++ b/lib/mountlist.h
@@ -36,5 +36,6 @@ struct mount_entry
 };
 
 struct mount_entry *read_file_system_list (bool need_fs_type);
+void free_mount_entry (struct mount_entry *entry);
 
 #endif
-- 
1.7.7.6




reply via email to

[Prev in Thread] Current Thread [Next in Thread]