Hello Dave,

A Debian user, Timo Juhani Lindfors <[email protected]>, reported
this issue that and delivered the patch to resolve it. The original
strcpy is being called with overlapping arguments because it is
expecting an additional version number. 

Troy

---
diff -urpN -urN ori/kernel.c new/kernel.c
--- ori/kernel.c        2013-08-01 11:40:01.299157220 -0600
+++ new/kernel.c        2013-08-01 11:42:12.506364789 -0600
@@ -218,21 +218,29 @@ kernel_init()
 
        strncpy(buf, kt->utsname.release, MIN(strlen(kt->utsname.release), 65));
        if (ascii_string(kt->utsname.release)) {
+               char separator;
+
                p1 = p2 = buf;
                while (*p2 != '.')
                        p2++;
                *p2 = NULLCHAR;
                kt->kernel_version[0] = atoi(p1);
                p1 = ++p2;
-               while (*p2 != '.')
+               while (*p2 != '.' && *p2 != '-' && *p2 != '\0')
                        p2++;
+               separator = *p2;
                *p2 = NULLCHAR;
                kt->kernel_version[1] = atoi(p1);
-               p1 = ++p2;
-               while ((*p2 >= '0') && (*p2 <= '9'))
-                       p2++;
-               *p2 = NULLCHAR;
-               kt->kernel_version[2] = atoi(p1);
+               *p2 = separator;
+               if (*p2 == '.') {
+                       p1 = ++p2;
+                       while ((*p2 >= '0') && (*p2 <= '9'))
+                               p2++;
+                       *p2 = NULLCHAR;
+                       kt->kernel_version[2] = atoi(p1);
+               } else {
+                       kt->kernel_version[2] = 0;
+               }
 
                if (CRASHDEBUG(1))
                        fprintf(fp, "base kernel version: %d.%d.%d\n",

--
Crash-utility mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/crash-utility

Reply via email to