[parted-devel] Problem with Linux "3.0"
Jim Meyering
jim at meyering.net
Sun Jun 5 16:17:40 UTC 2011
Richard W.M. Jones wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=710882
>
> I'm fairly sure that the problem is in _get_linux_version function in
> libparted/arch/linux.c, which expects a 3 part string. In Linux 3.0
> the string is "3.0" so this fails.
>
> Sorry for not putting together a patch, but my dev machine is down at
> the moment. If no one else jumps in, I'll post a patch tomorrow.
Hi Rich,
Thanks for the report.
Here's an untested patch:
>From 2ad212ad414f96b34420ece1adc3db9f291d03c3 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Sun, 5 Jun 2011 18:15:31 +0200
Subject: [PATCH] libparted: accommodate two-component linux version number
like 3.0
* libparted/arch/linux.c (_get_linux_version): Also accept 2-component
version numbers.
Reported by Richard W.M. Jones.
---
libparted/arch/linux.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
index aeaf98f..111816c 100644
--- a/libparted/arch/linux.c
+++ b/libparted/arch/linux.c
@@ -610,7 +610,11 @@ _get_linux_version ()
if (uname (&uts))
return kver = 0;
- if (sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny) != 3)
+ if (sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny) == 3)
+ ; /* ok */
+ else if (sscanf (uts.release, "%u.%u", &major, &minor) == 2)
+ teeny = 0;
+ else
return kver = 0;
return kver = KERNEL_VERSION (major, minor, teeny);
--
1.7.6.rc0.254.gf37de
More information about the parted-devel
mailing list