From 28288541273e5c304eb056f4f408546dd0bdc75b Mon Sep 17 00:00:00 2001 From: Michael Snyder Date: Tue, 1 Mar 2011 01:44:24 +0000 Subject: [PATCH] 2011-02-28 Michael Snyder * objc-lang.c (selectors_info): Add a small safety margin to avoid overflow. (classes_info): Error out on too long REGEXP. --- gdb/ChangeLog | 4 ++++ gdb/objc-lang.c | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 90e9c00..b1b8bf9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 2011-02-28 Michael Snyder + * objc-lang.c (selectors_info): Add a small safety margin to + avoid overflow. + (classes_info): Error out on too long REGEXP. + * infrun.c (handle_inferior_event): Remove unused function call. * fork-child.c (fork_inferior): Remove ifdef'd code and diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c index 26b7fb1..d656044 100644 --- a/gdb/objc-lang.c +++ b/gdb/objc-lang.c @@ -720,7 +720,7 @@ selectors_info (char *regexp, int from_tty) strcpy(myregexp, ".*]"); else { - if (sizeof (myregexp) < strlen (regexp) + 1) + if (sizeof (myregexp) < strlen (regexp) + 4) error (_("Regexp is too long: %s"), regexp); strcpy(myregexp, regexp); if (myregexp[strlen(myregexp) - 1] == '$') /* end of selector */ @@ -863,6 +863,8 @@ classes_info (char *regexp, int from_tty) strcpy(myregexp, ".* "); /* Null input: match all objc classes. */ else { + if (sizeof (myregexp) < strlen (regexp) + 4) + error (_("Regexp is too long: %s"), regexp); strcpy(myregexp, regexp); if (myregexp[strlen(myregexp) - 1] == '$') /* In the method name, the end of the class name is marked by ' '. */ -- 2.7.4