aboutsummaryrefslogtreecommitdiff
path: root/gdb/common
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@broadcom.com>2013-07-16 21:12:14 +0000
committerAndrew Burgess <aburgess@broadcom.com>2013-07-16 21:12:14 +0000
commit5ea5559b9aab3618955d6d38934828e9d5749bea (patch)
tree9aa1ffc18e57611494e73af7b6685a96860667de /gdb/common
parent2c57100624571d93ebc965bed32b7d517a382e02 (diff)
downloadgdb-5ea5559b9aab3618955d6d38934828e9d5749bea.zip
gdb-5ea5559b9aab3618955d6d38934828e9d5749bea.tar.gz
gdb-5ea5559b9aab3618955d6d38934828e9d5749bea.tar.bz2
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.
Diffstat (limited to 'gdb/common')
-rw-r--r--gdb/common/format.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gdb/common/format.c b/gdb/common/format.c
index 5803818..1bdd253 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++;
}