From: cagney Date: Sun, 17 Mar 2002 19:29:37 +0000 (+0000) Subject: * kod.c (kod_set_os): Revert previous change. Is called by ``info X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3c892303d1fcde38140216d1952a74d22d4ff4a2;p=pf3gnuchains%2Fpf3gnuchains3x.git * kod.c (kod_set_os): Revert previous change. Is called by ``info set'' and this leads to a core dump. Move xstrdup of operating_system to after check that it is not NULL. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c5d649179a..5332ca3372 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2002-03-17 Andrew Cagney + * kod.c (kod_set_os): Revert previous change. Is called by ``info + set'' and this leads to a core dump. Move xstrdup of + operating_system to after check that it is not NULL. + +2002-03-17 Andrew Cagney + * kod.c (kod_set_os): Remove unnecessary check that ``command->type'' is set_cmd. diff --git a/gdb/kod.c b/gdb/kod.c index 68ce18c715..8e8a716914 100644 --- a/gdb/kod.c +++ b/gdb/kod.c @@ -132,6 +132,15 @@ kod_set_os (char *arg, int from_tty, struct cmd_list_element *command) { char *p; + /* NOTE: cagney/2002-03-17: This function gets called by the command + ``info set'' with COMMAND pointing to a show_cmd rather than a + set command. This the test below is removed, a core dump results + (think about what happens when OPERATING_SYSTEM is NULL). The + wiered thing is that all other ``set'' handlers don't need this + test. */ + if (command->type != set_cmd) + return; + /* If we had already had an open OS, close it. */ if (gdb_kod_close) (*gdb_kod_close) (); @@ -142,7 +151,6 @@ kod_set_os (char *arg, int from_tty, struct cmd_list_element *command) delete_cmd (old_operating_system, &infolist); xfree (old_operating_system); } - old_operating_system = xstrdup (operating_system); if (! operating_system || ! *operating_system) { @@ -157,6 +165,8 @@ kod_set_os (char *arg, int from_tty, struct cmd_list_element *command) { char *kodlib; + old_operating_system = xstrdup (operating_system); + load_kod_library (operating_system); kodlib = (*gdb_kod_open) (gdb_kod_display, gdb_kod_query);