]> granicus.if.org Git - strace/commitdiff
2006-09-01 Dmitry V. Levin <ldv@altlinux.org>
authorDmitry V. Levin <ldv@altlinux.org>
Wed, 11 Oct 2006 22:58:31 +0000 (22:58 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 11 Oct 2006 22:58:31 +0000 (22:58 +0000)
* file.c (print_xattr_val): Fix memory corruption bug reported
by James Antill.
Fixes RH#200621.

ChangeLog
file.c

index e77e19baa76e2e4878556d2f7673b07409d59943..c08ba9d616246cd470e224a38b12177f8a86c56b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-09-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+       * file.c (print_xattr_val): Fix memory corruption bug reported
+       by James Antill.
+       Fixes RH#200621.
+
 2006-04-21  Dmitry V. Levin  <ldv@altlinux.org>
 
        * defs.h [LINUX && X86_64 && !__NR_exit_group]: Define
diff --git a/file.c b/file.c
index dd825b0f44aaf53e4c9b94280c2dcfbf1e116738..6d74e3d953b5a7e83ac3fa975c973e4e51a00f22 100644 (file)
--- a/file.c
+++ b/file.c
@@ -2360,7 +2360,7 @@ unsigned long insize, size;
                    *out++ = tohex(in[i] % 16);
                }
            /* Don't print terminating NUL if there is one.  */
-           if (in[i - 1] == '\0')
+           if (i > 0 && in[i - 1] == '\0')
                out -= 4;
            *out = '\0';
            tprintf(", \"%s\", %ld", buf, insize);