[MI] Fix segfault for -remove-inferior

Marc Khouzam
2010-08-04T19:56:55Z

Hi,

I started to play around with MI multi-exec and got a segfault.
Below is the session showing the problem and the patch to fix it.
I think this should go into the 7.2 branch.

(I did not have time to run the test suite)

OK?

Marc

GNU gdb (GDB) 7.2.50.20100727-cvs
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
(gdb) interpreter-exec mi "-remove-inferior i1"
Segmentation fault

2010-08-04 Marc Khouzam <marc.khouzam@ericsson.com>

* mi/mi-main.c (mi_cmd_remove_inferior): Properly access first argument.

### Eclipse Workspace Patch 1.0
#P src
Index: gdb/mi/mi-main.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-main.c,v
retrieving revision 1.178
diff -u -r1.178 mi-main.c
--- gdb/mi/mi-main.c 11 Jun 2010 15:36:07 -0000 1.178
+++ gdb/mi/mi-main.c 4 Aug 2010 19:40:19 -0000
@@ -1609,7 +1609,7 @@
if (argc != 1)
error ("-remove-inferior should be passed a single argument");

- if (sscanf (argv[1], "i%d", &id) != 1)
+ if (sscanf (argv[0], "i%d", &id) != 1)
error ("the thread group id is syntactically invalid");

inf = find_inferior_id (id);