[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gdb-bugs
Subject:    bug in gdb/target.c:target_signal_to_name
From:       Petr Ledvina <ledvinap () kae ! zcu ! cz>
Date:       2001-11-30 17:37:19
Message-ID: Pine.OSF.4.33.0111301833160.4557-100000 () eryx1 ! zcu ! cz
[Download RAW message or body]

When remote target returns some invalid signal, gdb vill crash with
segfault. The problem seems to be in function target_signal_to_name,
which doesn't check, if signal is in bounds and returns invalid name.

This version will (at least) not segfault:

/* Return the name for a signal.  */
char *
target_signal_to_name (sig)
     enum target_signal sig;
{
  if (sig == TARGET_SIGNAL_UNKNOWN)
    /* I think the code which prints this will always print it along with
       the string, so no need to be verbose.  */
    return "?";
  if ((sig >= TARGET_SIGNAL_FIRST) && (sig <= TARGET_SIGNAL_LAST))
    return signals[sig].name;
  else
    return signals[TARGET_SIGNAL_UNKNOWN].name;
}


Petr Ledvina
ledvinap@kae.zcu.cz



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic