OSDN Git Service

libparted: simplify kernel version-parsing logic
authorH. Peter Anvin <hpa@zytor.com>
Tue, 7 Jun 2011 16:03:14 +0000 (18:03 +0200)
committerJim Meyering <meyering@redhat.com>
Tue, 7 Jun 2011 16:22:21 +0000 (18:22 +0200)
* libparted/arch/linux.c: (_get_linux_version): Simplify and add
an assertion.

libparted/arch/linux.c

index 111816c..bfe2982 100644 (file)
@@ -601,22 +601,17 @@ _get_linux_version ()
         static int kver = -1;
 
         struct utsname uts;
-        int major;
-        int minor;
-        int teeny;
+        int major = 0;
+        int minor = 0;
+        int teeny = 0;
 
         if (kver != -1)
                 return kver;
 
         if (uname (&uts))
                 return kver = 0;
-        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;
-
+        int n = sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny);
+        assert (n == 2 || n == 3);
         return kver = KERNEL_VERSION (major, minor, teeny);
 }