Re: /usr/src/lib/libc/string/strsignal.c:96

From: Maxime Henrion <mux_at_FreeBSD.org>
Date: Sun, 6 Mar 2005 01:27:56 +0100
Sean McNeil wrote:
> Hi folks,
> 
> It looks like strsignal is busted.  All I have to do is hit ctrl-c while
> running gmake and I get this core:
> 
> #0  strsignal (num=2) at /usr/src/lib/libc/string/strsignal.c:96
>         ebuf = "Interrupt", '\0' <repeats 2038 times>
>         tmp = "2\000\000\000\000\000\000\000\002\000\000\000\000\000\000
> \000\000\000\000"
>         signum = 0
>         n = 4326031
>         t = 0x7fffffffd151 ""
>         p = 0x800d5b82f <Address 0x800d5b82f out of bounds>
> 
> This is because n is uninitialized when num > 0 && num < sys_nsig.

Indeed.  Can you confirm that this patch fixes the problem?

%%
--- strsignal.c.orig	Tue Mar  1 20:28:14 2005
+++ strsignal.c	Sun Mar  6 01:24:18 2005
_at__at_ -64,7 +64,7 _at__at_
 #endif
 
 	if (num > 0 && num < sys_nsig) {
-		strlcpy(ebuf,
+		n = strlcpy(ebuf,
 #if defined(NLS)
 			catgets(catd, 2, num, sys_siglist[num]),
 #else
%%

Cheers,
Maxime
Received on Sat Mar 05 2005 - 23:27:57 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:29 UTC