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

Bug#781233: unblock: parted/3.2-7



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package parted; this fixes a crash when trying to resize
fat16 filesystems.  CCing debian-boot since this would need a d-i ack
too.

diff -Nru parted-3.2/debian/.git-dpm parted-3.2/debian/.git-dpm
--- parted-3.2/debian/.git-dpm	2014-09-19 15:41:38.000000000 +0100
+++ parted-3.2/debian/.git-dpm	2014-11-06 12:21:49.000000000 +0000
@@ -1,6 +1,6 @@
 # see git-dpm(1) from git-dpm package
-5e4e122454ac8ecf5b5fc006c0b03f0e8adc6c7c
-5e4e122454ac8ecf5b5fc006c0b03f0e8adc6c7c
+bdfd201a2f5b8090c7ba1208fe5531d0dceecf49
+bdfd201a2f5b8090c7ba1208fe5531d0dceecf49
 a3803540db7f12359a111d6449159b91032c253f
 a3803540db7f12359a111d6449159b91032c253f
 parted_3.2.orig.tar.xz
diff -Nru parted-3.2/debian/changelog parted-3.2/debian/changelog
--- parted-3.2/debian/changelog	2014-09-19 15:44:41.000000000 +0100
+++ parted-3.2/debian/changelog	2015-03-19 10:58:59.000000000 +0000
@@ -1,3 +1,15 @@
+parted (3.2-7) unstable; urgency=medium
+
+  [ Phillip Susi ]
+  * Cherry pick upstream patch to fix a crash when resizing fat16
+    (LP: #1342255).
+
+  [ Colin Watson ]
+  * Drop libparted2's alternative Suggests on nparted, which has not been in
+    Debian for a decade or so.
+
+ -- Colin Watson <cjwatson@debian.org>  Thu, 19 Mar 2015 10:58:55 +0000
+
 parted (3.2-6) unstable; urgency=medium
 
   [ Steven Chamberlain ]
diff -Nru parted-3.2/debian/control parted-3.2/debian/control
--- parted-3.2/debian/control	2014-09-19 15:38:08.000000000 +0100
+++ parted-3.2/debian/control	2015-03-19 10:52:48.000000000 +0000
@@ -68,7 +68,7 @@
 Section: libs
 Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Suggests: parted | nparted, libparted-dev, libparted-i18n (= ${source:Version})
+Suggests: parted, libparted-dev, libparted-i18n (= ${source:Version})
 Conflicts: parted (<< 1.4.13+14pre1), libparted1 (<< 2.2)
 Replaces: libparted0 (<< 2.2-4), libparted1 (<< 2.2), libparted1.4 (<< 1.4.24-2)
 Provides: libparted
diff -Nru parted-3.2/debian/patches/fat16-resize-crash.patch parted-3.2/debian/patches/fat16-resize-crash.patch
--- parted-3.2/debian/patches/fat16-resize-crash.patch	1970-01-01 01:00:00.000000000 +0100
+++ parted-3.2/debian/patches/fat16-resize-crash.patch	2014-11-06 12:21:49.000000000 +0000
@@ -0,0 +1,56 @@
+From bdfd201a2f5b8090c7ba1208fe5531d0dceecf49 Mon Sep 17 00:00:00 2001
+From: Mike Fleetwood <mike.fleetwood@googlemail.com>
+Date: Sun, 28 Sep 2014 16:15:48 +0100
+Subject: lib-fs-resize: Prevent crash resizing FAT16 file systems
+
+Resizing FAT16 file system crashes in libparted/fs/r/fat/resize.c
+create_resize_context() because it was dereferencing NULL pointer
+fs_info->info_sector to copy the info_sector.
+
+Only FAT32 file systems have info_sector populated by fat_open() ->
+fat_info_sector_read().  FAT12 and FAT16 file systems don't have an
+info_sector so pointer fs_info->info_sector remains assigned NULL from
+fat_alloc().  When resizing a FAT file system create_resize_context()
+was always dereferencing fs_info->info_sector to memory copy the
+info_sector, hence it crashed for FAT12 and FAT16.
+
+Make create_resize_context() only copy the info_sector for FAT32 file
+systems.
+
+Reported by Christian Hesse in
+https://bugzilla.gnome.org/show_bug.cgi?id=735669
+
+Origin: upstream, http://git.savannah.gnu.org/cgit/parted.git/commit/?id=1e9e770f4bc7f3d80e09ecd1df58575fad064163
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=735669
+Last-Update: 2014-11-06
+
+Patch-Name: fat16-resize-crash.patch
+---
+ libparted/fs/r/fat/resize.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/libparted/fs/r/fat/resize.c b/libparted/fs/r/fat/resize.c
+index 919acf0..bfe60a0 100644
+--- a/libparted/fs/r/fat/resize.c
++++ b/libparted/fs/r/fat/resize.c
+@@ -668,11 +668,17 @@ create_resize_context (PedFileSystem* fs, const PedGeometry* new_geom)
+ 
+ /* preserve boot code, etc. */
+ 	new_fs_info->boot_sector = ped_malloc (new_geom->dev->sector_size);
+-	new_fs_info->info_sector = ped_malloc (new_geom->dev->sector_size);
+ 	memcpy (new_fs_info->boot_sector, fs_info->boot_sector,
+ 		new_geom->dev->sector_size);
+-	memcpy (new_fs_info->info_sector, fs_info->info_sector,
+-		new_geom->dev->sector_size);
++	new_fs_info->info_sector = NULL;
++	if (fs_info->fat_type == FAT_TYPE_FAT32)
++	{
++		PED_ASSERT (fs_info->info_sector != NULL);
++		new_fs_info->info_sector =
++			ped_malloc (new_geom->dev->sector_size);
++		memcpy (new_fs_info->info_sector, fs_info->info_sector,
++			new_geom->dev->sector_size);
++	}
+ 
+ 	new_fs_info->logical_sector_size = fs_info->logical_sector_size;
+ 	new_fs_info->sector_count = new_geom->length;
diff -Nru parted-3.2/debian/patches/series parted-3.2/debian/patches/series
--- parted-3.2/debian/patches/series	2014-09-19 15:38:08.000000000 +0100
+++ parted-3.2/debian/patches/series	2014-11-06 12:21:49.000000000 +0000
@@ -13,3 +13,4 @@
 fat-resize-large-sectors.patch
 align-new-partitions-on-fresh-disks.patch
 probe-lvs-again.patch
+fat16-resize-crash.patch

unblock parted/3.2-7

Thanks,

-- 
Colin Watson                                       [cjwatson@debian.org]


Reply to: