]> granicus.if.org Git - strace/commitdiff
Fix kernel release string parsing
authorDmitry V. Levin <ldv@altlinux.org>
Mon, 14 May 2012 23:42:10 +0000 (23:42 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 14 May 2012 23:42:10 +0000 (23:42 +0000)
* strace.c (get_os_release): Handle "X.Y-something" utsname.release
strings properly.

Reported-by: Bryce Gibson <bryce@gibson-consulting.com.au>
strace.c

index 857136d594f9cbb8a6d40dcd4bfc946e0979327e..65dee7d57057eb442e731714cd4be102dc8d22d0 100644 (file)
--- a/strace.c
+++ b/strace.c
@@ -1432,8 +1432,14 @@ get_os_release(void)
                        break;
                while (*p >= '0' && *p <= '9')
                        p++;
-               if (*p != '.')
+               if (*p != '.') {
+                       if (rel >= KERNEL_VERSION(0,1,0)) {
+                               /* "X.Y-something" means "X.Y.0" */
+                               rel <<= 8;
+                               break;
+                       }
                        error_msg_and_die("Bad OS release string: '%s'", u.release);
+               }
                p++;
        }
        return rel;