diff options
author | Karel Zak | 2011-06-20 13:48:40 +0200 |
---|---|---|
committer | Karel Zak | 2011-06-20 13:48:40 +0200 |
commit | 85d5acb8d2c172b58eae01d04697f84ab843a37f (patch) | |
tree | abb42a8375594192a08033931c5459d69c07f195 | |
parent | lscpu: detect VMware hypervisor (diff) | |
download | kernel-qcow2-util-linux-85d5acb8d2c172b58eae01d04697f84ab843a37f.tar.gz kernel-qcow2-util-linux-85d5acb8d2c172b58eae01d04697f84ab843a37f.tar.xz kernel-qcow2-util-linux-85d5acb8d2c172b58eae01d04697f84ab843a37f.zip |
lib: [linux_version.c] simplify version parsing
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r-- | lib/linux_version.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/linux_version.c b/lib/linux_version.c index ada566ad0..2bcc2cc65 100644 --- a/lib/linux_version.c +++ b/lib/linux_version.c @@ -3,23 +3,23 @@ #include "linux_version.h" -int -get_linux_version (void) +int get_linux_version (void) { static int kver = -1; struct utsname uts; - int major; - int minor; - int teeny; + int major = 0; + int minor = 0; + int teeny = 0; + int n; if (kver != -1) return kver; if (uname (&uts)) - kver = 0; - else if (sscanf (uts.release, "%d.%d.%d", &major, &minor, &teeny) == 3) - kver = KERNEL_VERSION (major, minor, teeny); - else if (sscanf (uts.release, "%d.%d", &major, &minor) == 2) - kver = KERNEL_VERSION (major, minor, 0); + return kver = 0; - return kver; + n = sscanf(uts.release, "%d.%d.%d", &major, &minor, &teeny); + if (n < 1 || n > 3) + return kver = 0; + + return kver = KERNEL_VERSION(major, minor, teeny); } |