summaryrefslogtreecommitdiff
path: root/gdb/common
diff options
context:
space:
mode:
authoraburgess <aburgess>2013-07-16 21:12:14 +0000
committeraburgess <aburgess>2013-07-16 21:12:14 +0000
commit11d4b8302575e76de2c5dda233290a8dbd424171 (patch)
tree7ae7e6b6af2641a65c9139c4ea06982e2a523299 /gdb/common
parent2736ba401cd3ebf7773192265a38c9117c1d1c2e (diff)
downloadgdb-11d4b8302575e76de2c5dda233290a8dbd424171.tar.gz
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 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++;
}