summaryrefslogtreecommitdiff
path: root/src/ptx.c
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2008-03-21 10:37:26 +0100
committerJim Meyering <meyering@redhat.com>2008-03-21 20:58:15 +0100
commita0851554bd52038ed47e46ee521ce74a5a09f747 (patch)
tree624025f9d2b1e17429bd4934da21942dab3b3039 /src/ptx.c
parent4f812540a26ad98b52fac71e54049253359caf19 (diff)
downloadcoreutils-a0851554bd52038ed47e46ee521ce74a5a09f747.tar.xz
ptx: avoid heap overrun for backslash at end of optarg string
* src/ptx.c (copy_unescaped_string): Ignore a lone backslash at end of string. Reported by Cristian Cadar, Daniel Dunbar and Dawson Engler. Details here: <http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13005>. * tests/misc/Makefile.am (TESTS): Add ptx-overrun. * tests/misc/ptx-overrun: New file. Test for the above fix. * NEWS: Mention the fix. Signed-off-by: Jim Meyering <meyering@redhat.com>
Diffstat (limited to 'src/ptx.c')
-rw-r--r--src/ptx.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/ptx.c b/src/ptx.c
index dafcbe22a..8f7ae95a4 100644
--- a/src/ptx.c
+++ b/src/ptx.c
@@ -388,6 +388,10 @@ copy_unescaped_string (const char *string)
string++;
break;
+ case '\0': /* lone backslash at end of string */
+ /* ignore it */
+ break;
+
default:
*cursor++ = '\\';
*cursor++ = *string++;