From 11d4b8302575e76de2c5dda233290a8dbd424171 Mon Sep 17 00:00:00 2001 From: aburgess Date: Tue, 16 Jul 2013 21:12:14 +0000 Subject: Check for NULL character before calling strchr. http://sourceware.org/ml/gdb-patches/2013-07/msg00322.html gdb/ChangeLog * common/format.c (parse_format_string): Add checks for NULL character before calling strchr. gdb/testsuite/ChangeLog * gdb.base/printcmds.exp (test_printf): Add tests for format strings with missing format specifier. --- gdb/common/format.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gdb/common') diff --git a/gdb/common/format.c b/gdb/common/format.c index 580381864e1..1bdd2532d2f 100644 --- a/gdb/common/format.c +++ b/gdb/common/format.c @@ -156,7 +156,7 @@ parse_format_string (const char **arg) /* The first part of a format specifier is a set of flag characters. */ - while (strchr ("0-+ #", *f)) + while (*f != '\0' && strchr ("0-+ #", *f)) { if (*f == '#') seen_hash = 1; @@ -170,7 +170,7 @@ parse_format_string (const char **arg) } /* The next part of a format specifier is a width. */ - while (strchr ("0123456789", *f)) + while (*f != '\0' && strchr ("0123456789", *f)) f++; /* The next part of a format specifier is a precision. */ @@ -178,7 +178,7 @@ parse_format_string (const char **arg) { seen_prec = 1; f++; - while (strchr ("0123456789", *f)) + while (*f != '\0' && strchr ("0123456789", *f)) f++; } -- cgit v1.2.1