Article View: gnu.gdb.bug
Article #208Re: gdb seg fault (subscript out of bound) on invalid signal number
From: Hal Peterson
Date: Mon, 24 Jul 1989 17:54
Date: Mon, 24 Jul 1989 17:54
64 lines
2686 bytes
2686 bytes
The same thing happens with 3.2 on a Sun-3 running SunOS 3.5. The
problem (in 3.2, anyway) is that signals_info isn't doing a bounds
check on the signal number, and since there are only 32 signals, it
indexes off the end of the sys_siglist array. Following my .signature
is a patch to fix it in 3.2.
--
Hal Peterson Domain: hrp@cray.com
Cray Research Old style: hrp%cray.com@uc.msc.umn.edu
1440 Northland Dr. UUCP: uunet!cray!hrp
Mendota Hts, MN 55120 USA Telephone: +1 612 681 3145
========================================================================
*** infrun-DIST.c Wed Jul 5 14:46:07 1989
--- infrun.c Mon Jul 24 12:37:50 1989
***************
*** 1223,1241 ****
char *signum_exp;
{
register int i;
! printf_filtered ("Number\tStop\tPrint\tPass to program\tDescription\n");
if (signum_exp)
{
i = parse_and_eval_address (signum_exp);
! printf_filtered ("%d\t", i);
! printf_filtered ("%s\t", signal_stop[i] ? "Yes" : "No");
! printf_filtered ("%s\t", signal_print[i] ? "Yes" : "No");
! printf_filtered ("%s\t\t", signal_program[i] ? "Yes" : "No");
! printf_filtered ("%s\n", sys_siglist[i]);
return;
}
printf_filtered ("\n");
for (i = 0; i < NSIG; i++)
{
--- 1223,1251 ----
char *signum_exp;
{
register int i;
! register char *heading =
! "Number\tStop\tPrint\tPass to program\tDescription\n";
if (signum_exp)
{
i = parse_and_eval_address (signum_exp);
! if ((i < NSIG) && (i >= 0))
! {
! printf_filtered (heading);
! printf_filtered ("%d\t", i);
! printf_filtered ("%s\t", signal_stop[i] ? "Yes" : "No");
! printf_filtered ("%s\t", signal_print[i] ? "Yes" : "No");
! printf_filtered ("%s\t\t", signal_program[i] ? "Yes" : "No");
! printf_filtered ("%s\n", sys_siglist[i]);
! }
! else
! {
! error ("Invalid signal %d given as argument to \"info signal\"", i);
! }
return;
}
+ printf_filtered (heading);
printf_filtered ("\n");
for (i = 0; i < NSIG; i++)
{
Technical Details
Message-ID:
<8907241754.AA13351@rothko.cray.com>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cwjcc!tut.cis.ohio-state.edu!boring.cray.com!hrpReferences:
<8907171834.AA19716@ivy.ucdavis.edu>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cwjcc!tut.cis.ohio-state.edu!boring.cray.com!hrp From: hrp@boring.cray.com (Hal Peterson) Newsgroups: gnu.gdb.bug Subject: Re: gdb seg fault (subscript out of bound) on invalid signal number Message-ID: <8907241754.AA13351@rothko.cray.com> Date: 24 Jul 89 17:54:30 GMT References: <8907171834.AA19716@ivy.ucdavis.edu> Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: Cray Research, Inc. Lines: 64