This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] segv fix when eof is typed in actions


Pawel Ostrowski wrote:
Hello,

GDB (snapshot 20031230) segfaults on the following script (and on any
program being debugged: int main() {return 0;} is enough):

trace main
actions 1
<EOF here>

I have found out that typing EOF when editing tracepoint actions
causes gdb to segv. The segv is caused by dereferencing twice line
parameter (**line), when *line is NULL. I have added check for this
case to validate_actionline() in tracepoint.c, so it now ends actions
editing (just like you would have typed "end" instead of EOF).

Some details of my configuration:
- gdb versions: 6.0, 20031230 snapshot, both compiled with gcc 3.3.2
- uname -rmpo: 2.6.0 i686 AMD_Athlon(tm)_XP_1500+ PLD Linux

Approved -- want me to check it in for you?



Changelog:
2004-01-02  Pawel Ostrowski  <pasza@zodiac.mimuw.edu.pl>

* tracepoint.c (validate_actionline): Fix segv at EOF


And the patch:

*** gdb-6.0-orig/gdb/tracepoint.c	Thu Jun 12 01:29:48 2003
--- gdb-6.0/gdb/tracepoint.c	Fri Jan  2 02:11:58 2004
*************** validate_actionline (char **line, struct
*** 914,919 ****
--- 914,923 ----
    struct cleanup *old_chain = NULL;
    char *p;

+   /* if EOF is typed, *line is NULL */
+   if (*line == NULL)
+     return END;
+
    for (p = *line; isspace ((int) *p);)
      p++;


-- Pasza




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]