Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates-src > by-pkgid > c2e605cb8e2a4bbe705cc43012a1cdbb > files > 17

util-linux-ng-2.17.2-10.fc13.src.rpm

Upstream patches:

	From d6d9cc6ea158ef3b2525742ee3f80c4a3be8b049 Mon Sep 17 00:00:00 2001
	From: Phillip Susi <psusi@cfl.rr.com>
	Date: Wed, 31 Mar 2010 15:52:08 +0200
	Subject: [PATCH] partx: do not add nonexistent partitions

	This simple patch fixes partx -a to not add nonexistent zero length
	partitions for unused primary partition slots to to the kernel. This
	makes partx conform to the usual kernel behavior.

	Signed-off-by: Phillip Susi <psusi@cfl.rr.com>
	Signed-off-by: Karel Zak <kzak@redhat.com>


	From c86dda7b36e3a6cfc63b9c03f7d275d715d35fd0 Mon Sep 17 00:00:00 2001
	From: Karel Zak <kzak@redhat.com>
	Date: Wed, 31 Mar 2010 16:38:51 +0200
	Subject: [PATCH] partx: fix infinite loop

	On Wed, Mar 24, 2010 at 04:39:35PM -0400, Phillip Susi wrote:
	> I noticed that running partx -d /dev/sda hangs so I looked into it
	> and it seems that it keeps trying to delete partitions forever.

	Reported-By: Phillip Susi <psusi@cfl.rr.com>
	Signed-off-by: Karel Zak <kzak@redhat.com>

---
 partx/partx.c |    5 +++++
 1 file changed, 5 insertions(+)

--- util-linux-ng-2.17.2.orig/partx/partx.c
+++ util-linux-ng-2.17.2/partx/partx.c
@@ -178,6 +178,8 @@ main(int argc, char **argv){
 		while (upper == 0 || lower <= upper) {
 			int err;
 
+			if (lower > MAXSLICES)
+				break;
 			pt.pno = lower;
 			pt.start = 0;
 			pt.length = 0;
@@ -295,6 +297,9 @@ main(int argc, char **argv){
 				}
 			    }
 			    for (j=0; j<n; j++) {
+			        /* skip unused/empty partitions */
+				if (slices[j].size == 0)
+				    continue;
 				pt.pno = lower+j;
 				pt.start = 512 * (long long) slices[j].start;
 				pt.length = 512 * (long long) slices[j].size;