[Parted-commits] GNU Parted Official Repository: Changes to 'next'

Jim Meyering meyering at alioth.debian.org
Wed Oct 28 14:44:25 UTC 2009


 libparted/filesys.c    |    1 +
 libparted/labels/gpt.c |    5 +++++
 parted/parted.c        |   17 ++++++++++-------
 3 files changed, 16 insertions(+), 7 deletions(-)

New commits:
commit 714ad62cee7e8b8efc21e228ce12730def72fac6
Author: Jim Meyering <meyering at redhat.com>
Date:   Tue Oct 27 23:10:35 2009 +0100

    ui: plug a constraint leak in do_mkpart
    
    * parted/parted.c (do_mkpart): Free constraint after using it to
    add partition.

diff --git a/parted/parted.c b/parted/parted.c
index 955c8a2..79e50ad 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -787,8 +787,11 @@ do_mkpart (PedDevice** dev)
         if (!added_ok) {
                 ped_exception_leave_all();
 
-                if (ped_disk_add_partition (disk, part,
-                                        ped_constraint_any (*dev))) {
+                PedConstraint *constraint_any = ped_constraint_any (*dev);
+                bool added_ok = ped_disk_add_partition (disk, part,
+                                                        constraint_any);
+                ped_constraint_destroy (constraint_any);
+                if (added_ok) {
                         start_usr = ped_unit_format (*dev, start);
                         end_usr   = ped_unit_format (*dev, end);
                         start_sol = ped_unit_format (*dev, part->geom.start);

commit 89cb07e488b63e7ab93fe6b2a0ca0fea2de9142f
Author: Jim Meyering <meyering at redhat.com>
Date:   Tue Oct 27 22:44:04 2009 +0100

    gpt: plug two gpt-header leaks in gpt_read_headers
    
    * libparted/labels/gpt.c (gpt_read_headers): Free locals pri and/or
    bak if they are not valid.

diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
index c5679a6..8b77c51 100644
--- a/libparted/labels/gpt.c
+++ b/libparted/labels/gpt.c
@@ -869,6 +869,8 @@ gpt_read_headers (PedDisk const *disk,
   bool valid_primary = _header_is_valid (disk, pri, 1);
   if (valid_primary)
     *primary_gpt = pri;
+  else
+    pth_free (pri);
 
   PedSector backup_sector_num =
     (valid_primary
@@ -889,6 +891,8 @@ gpt_read_headers (PedDisk const *disk,
       *backup_gpt = bak;
       *backup_sector_num_p = backup_sector_num;
     }
+  else
+    pth_free (bak);
 
   return 0;
 }

commit d58d5932590bee884cde793e13c692769731b5bf
Author: Jim Meyering <meyering at redhat.com>
Date:   Tue Oct 27 22:38:02 2009 +0100

    gpt: plug a 1-sector leak in gpt_read_headers
    
    * libparted/labels/gpt.c (gpt_read_headers): Free a sector.

diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
index a81d8c8..c5679a6 100644
--- a/libparted/labels/gpt.c
+++ b/libparted/labels/gpt.c
@@ -879,6 +879,7 @@ gpt_read_headers (PedDisk const *disk,
   if (!ptt_read_sector (dev, backup_sector_num, &s_bak))
     return 1;
   t = pth_new_from_raw (dev, s_bak);
+  free (s_bak);
   if (t == NULL)
     return 1;
 

commit 8b5954a7223939699cb14fd120129307a446070a
Author: Jim Meyering <meyering at redhat.com>
Date:   Tue Oct 27 21:42:25 2009 +0100

    ui: plug a leak (partition_print_flags)
    
    * parted/parted.c (do_print): Free flags, after printing.

diff --git a/parted/parted.c b/parted/parted.c
index 30500db..955c8a2 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -1197,16 +1197,14 @@ partition_print_flags (PedPartition* part)
                                 first_flag = 0;
                         else {
                                 _res = res;
-                                ped_realloc (&_res, strlen (res)
-                                                           + 1 + 2);
+                                ped_realloc (&_res, strlen (res) + 1 + 2);
                                 res = _res;
                                 strncat (res, ", ", 2);
                         }
 
                         name = _(ped_partition_flag_get_name (flag));
                         _res = res;
-                        ped_realloc (&_res, strlen (res) + 1
-                                                   + strlen (name));
+                        ped_realloc (&_res, strlen (res) + 1 + strlen (name));
                         res = _res;
                         strncat (res, name, 21);
                 }
@@ -1572,7 +1570,9 @@ do_print (PedDevice** dev)
                     else
                         putchar (':');
 
-                    printf ("%s;\n", partition_print_flags (part));
+                    char *flags = partition_print_flags (part);
+                    printf ("%s;\n", flags);
+                    free (flags);
 
                 } else {
                     puts ("free;");

commit a1fc9eb125279bad126783ed54689cf271e20801
Author: Jim Meyering <meyering at redhat.com>
Date:   Tue Oct 27 21:36:30 2009 +0100

    libparted: plug an FS-alias-related leak
    
    * libparted/filesys.c (ped_file_system_alias_unregister):
    Free the alias we've just unregistered.

diff --git a/libparted/filesys.c b/libparted/filesys.c
index 8bdffb5..ebebe47 100644
--- a/libparted/filesys.c
+++ b/libparted/filesys.c
@@ -114,6 +114,7 @@ ped_file_system_alias_unregister (PedFileSystemType* fs_type,
 		last->next = walk->next;
 	else
 		fs_aliases = walk->next;
+	free (walk);
 }
 
 /**



More information about the Parted-commits mailing list