public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Jeroen Roovers" <jer@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-block/parted/, sys-block/parted/files/
Date: Sat, 10 Oct 2015 04:01:43 +0000 (UTC)	[thread overview]
Message-ID: <1444449694.3a1036332df73333e2b01d5e6fedd91dad7415de.jer@gentoo> (raw)

commit:     3a1036332df73333e2b01d5e6fedd91dad7415de
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 10 04:01:34 2015 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Sat Oct 10 04:01:34 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a103633

sys-block/parted: Fix crash on resizing FAT16 (bug #562136 by Nico R.).

Package-Manager: portage-2.2.22

 .../files/parted-3.2-fix-resizing-FAT16.patch      | 64 ++++++++++++++++++++++
 sys-block/parted/parted-3.2-r1.ebuild              | 59 ++++++++++++++++++++
 2 files changed, 123 insertions(+)

diff --git a/sys-block/parted/files/parted-3.2-fix-resizing-FAT16.patch b/sys-block/parted/files/parted-3.2-fix-resizing-FAT16.patch
new file mode 100644
index 0000000..2a5a231
--- /dev/null
+++ b/sys-block/parted/files/parted-3.2-fix-resizing-FAT16.patch
@@ -0,0 +1,64 @@
+From 1e9e770f4bc7f3d80e09ecd1df58575fad064163 Mon Sep 17 00:00:00 2001
+From: Mike Fleetwood <mike.fleetwood@googlemail.com>
+Date: Sun, 28 Sep 2014 15:15:48 +0000
+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
+---
+diff --git a/NEWS b/NEWS
+index 297b0a5..da7db50 100644
+--- a/NEWS
++++ b/NEWS
+@@ -2,6 +2,10 @@ GNU parted NEWS                                    -*- outline -*-
+ 
+ * Noteworthy changes in release ?.? (????-??-??) [?]
+ 
++** Bug Fixes
++
++  libparted-fs-resize: Prevent crash resizing FAT16 file systems.
++
+ 
+ * Noteworthy changes in release 3.2 (2014-07-28) [stable]
+ 
+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;
+--
+cgit v0.9.0.2

diff --git a/sys-block/parted/parted-3.2-r1.ebuild b/sys-block/parted/parted-3.2-r1.ebuild
new file mode 100644
index 0000000..e48c620
--- /dev/null
+++ b/sys-block/parted/parted-3.2-r1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit autotools eutils
+
+DESCRIPTION="Create, destroy, resize, check, copy partitions and file systems"
+HOMEPAGE="https://www.gnu.org/software/parted"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="+debug device-mapper nls readline selinux static-libs"
+RESTRICT="test"
+
+# specific version for gettext needed
+# to fix bug 85999
+RDEPEND="
+	>=sys-fs/e2fsprogs-1.27
+	>=sys-libs/ncurses-5.7-r7:0=
+	device-mapper? ( >=sys-fs/lvm2-2.02.45 )
+	readline? ( >=sys-libs/readline-5.2:0= )
+	selinux? ( sys-libs/libselinux )
+"
+DEPEND="
+	${RDEPEND}
+	nls? ( >=sys-devel/gettext-0.12.1-r2 )
+	virtual/pkgconfig
+"
+
+src_prepare() {
+	epatch \
+		"${FILESDIR}"/${PN}-3.2-devmapper.patch \
+		"${FILESDIR}"/${PN}-3.2-po4a-mandir.patch \
+		"${FILESDIR}"/${PN}-3.2-fix-resizing-FAT16.patch
+
+	eautoreconf
+}
+
+src_configure() {
+	econf \
+		$(use_enable debug) \
+		$(use_enable device-mapper) \
+		$(use_enable nls) \
+		$(use_enable selinux) \
+		$(use_enable static-libs static) \
+		$(use_with readline) \
+		--disable-rpath \
+		--disable-silent-rules
+}
+
+DOCS=( AUTHORS BUGS ChangeLog NEWS README THANKS TODO doc/{API,FAT,USER.jp} )
+
+src_install() {
+	default
+	prune_libtool_files
+}


             reply	other threads:[~2015-10-10  4:01 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-10  4:01 Jeroen Roovers [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-06-21 19:04 [gentoo-commits] repo/gentoo:master commit in: sys-block/parted/, sys-block/parted/files/ Mike Frysinger
2020-01-03 14:49 Jeroen Roovers
2020-01-03 17:23 Jeroen Roovers
2023-10-17  7:56 Sam James
2024-05-12  2:22 Sam James
2024-11-26  6:42 Sam James

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1444449694.3a1036332df73333e2b01d5e6fedd91dad7415de.jer@gentoo \
    --to=jer@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox