Hi Timo,

Thanks for debugging this! Do you want to submit the patch to "crash"
upstream directly yourself or would you like me to do it for you?

Troy

On 07/24/13 09:54, Timo Juhani Lindfors wrote:
> Hi,
> 
> the attached patches fix the valgrind issue and now my bug seems to be
> gone too.
> 
> Have you managed to upstream the format string fixes btw? I'd really
> like to see upstream git repository but last time I couldn't find it.
> 
> There's at least one remaining valgrind issue:
> 
> ==31166== Source and destination overlap in strcpy(0x7fefffea2, 0x7fefffea4)
> ==31166==    at 0x4C2CA05: __GI_strcpy (mc_replace_strmem.c:439)
> ==31166==    by 0x479DB3: pages_to_size (tools.c:5312)
> ==31166==    by 0x4A80C4: get_memory_size (memory.c:11888)
> ==31166==    by 0x4FC1C1: display_sys_stats (kernel.c:4706)
> ==31166==    by 0x463A64: main_loop (main.c:678)
> ==31166==    by 0x74CEC2: current_interp_command_loop (interps.c:326)
> ==31166==    by 0x74E171: captured_command_loop (main.c:258)
> ==31166==    by 0x74BB5F: catch_errors (exceptions.c:557)
> ==31166==    by 0x74F793: captured_main (main.c:1064)
> ==31166==    by 0x74BB5F: catch_errors (exceptions.c:557)
> ==31166==    by 0x74F7E1: gdb_main (main.c:1079)
> ==31166==    by 0x74F839: gdb_main_entry (main.c:1099)
> ==31166== 
> 
> If you look at the code it is obvious that strcpy is called with
> overlapping arguments.
> 
> -Timo
> 

> From ddf40d625a7bd8771e7009d22f4b2ab1d8458589 Mon Sep 17 00:00:00 2001
> From: Timo Juhani Lindfors <timo.lindf...@iki.fi>
> Date: Wed, 24 Jul 2013 09:37:10 +0300
> Subject: [PATCH 1/3] add patch
> 
> ---
>  debian/patches/bug-717036.patch | 38 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
>  create mode 100644 debian/patches/bug-717036.patch
> 
> diff --git a/debian/patches/bug-717036.patch b/debian/patches/bug-717036.patch
> new file mode 100644
> index 0000000..977a53d
> --- /dev/null
> +++ b/debian/patches/bug-717036.patch
> @@ -0,0 +1,38 @@
> +--- a/kernel.c
> ++++ b/kernel.c
> +@@ -218,21 +218,29 @@
> + 
> +     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",
> -- 
> 1.8.3.2
> 

> From 5f1c1ed408fc06bdaef9889743e76ff264bcc911 Mon Sep 17 00:00:00 2001
> From: Timo Juhani Lindfors <timo.lindf...@iki.fi>
> Date: Wed, 24 Jul 2013 09:37:16 +0300
> Subject: [PATCH 2/3] update series
> 
> ---
>  debian/patches/series | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/debian/patches/series b/debian/patches/series
> index b543023..b7091c7 100644
> --- a/debian/patches/series
> +++ b/debian/patches/series
> @@ -1,2 +1,3 @@
>  01-format-strings.patch
>  02-format-strings_additional.patch
> +bug-717036.patch
> -- 
> 1.8.3.2
> 

> From d27e89e9c9109a1b214a2d068e5f63908dcdb9df Mon Sep 17 00:00:00 2001
> From: Timo Juhani Lindfors <timo.lindf...@iki.fi>
> Date: Wed, 24 Jul 2013 09:37:21 +0300
> Subject: [PATCH 3/3] update changelog
> 
> ---
>  debian/changelog | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/debian/changelog b/debian/changelog
> index e1b3d6b..b3c25ea 100644
> --- a/debian/changelog
> +++ b/debian/changelog
> @@ -1,3 +1,11 @@
> +crash (7.0.1-3lindi1) UNRELEASED; urgency=low
> +
> +  * Add patch to cope with kernel version numbers that only have two
> +    parts (e.g. "3.8"):
> +    - bug-717036.patch
> +
> + -- Timo Juhani Lindfors <timo.lindf...@iki.fi>  Wed, 24 Jul 2013 09:33:08 
> +0300
> +
>  crash (7.0.1-3) unstable; urgency=low
>  
>    * Updated format-strings patch to cover additional architectures
> -- 
> 1.8.3.2
> 

Attachment: signature.asc
Description: Digital signature

Reply via email to