summaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@specifix.com>2011-03-01 20:57:51 +0000
committerMichael Snyder <msnyder@specifix.com>2011-03-01 20:57:51 +0000
commit9f251d2cc1260a969d74bb5af7c8da9ac88a7fc6 (patch)
tree0c0ea325f8a5f8059d7acbeb2e1d9d190ac1e9af /gdb
parent7fe4036ca49d8b56e20dca06b549fc172e988622 (diff)
downloadgdb-9f251d2cc1260a969d74bb5af7c8da9ac88a7fc6.tar.gz
2011-03-01 Michael Snyder <msnyder@vmware.com>
* linespec.c (decode_line_1): Check for null before dereference.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog2
-rw-r--r--gdb/linespec.c15
2 files changed, 11 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e380be2826f..24be64cac77 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,7 @@
2011-03-01 Michael Snyder <msnyder@vmware.com>
+ * linespec.c (decode_line_1): Check for null before dereference.
+
* reverse.c (record_restore): Move null-check to before pointer
dereference.
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 9183064d704..e9548e86934 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -726,7 +726,7 @@ decode_line_1 (char **argptr, int funfirstline, struct symtab *default_symtab,
char *copy;
/* This says whether or not something in *ARGPTR is quoted with
completer_quotes (i.e. with single quotes). */
- int is_quoted;
+ int is_quoted = 0;
/* Is *ARGPTR is enclosed in double quotes? */
int is_quote_enclosed;
int is_objc_method = 0;
@@ -745,12 +745,15 @@ decode_line_1 (char **argptr, int funfirstline, struct symtab *default_symtab,
/* See if arg is *PC. */
- if (**argptr == '*')
- return decode_indirect (argptr);
+ if (*argptr)
+ {
+ if (**argptr == '*')
+ return decode_indirect (argptr);
+
+ is_quoted = (strchr (get_gdb_completer_quote_characters (),
+ **argptr) != NULL);
+ }
- is_quoted = (*argptr
- && strchr (get_gdb_completer_quote_characters (),
- **argptr) != NULL);
if (is_quoted)
end_quote = skip_quoted (*argptr);