Skip site navigation (1)Skip section navigation (2)
Date:      Thu,  7 Feb 2008 11:08:00 +0100 (CET)
From:      Stefan `Sec` Zehl <sec@42.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        torstenb@FreeBSD.org
Subject:   ports/120340: port irc/ircII broken on amd64/7.0R [patch included]
Message-ID:  <20080207100800.92003B848@ice.42.org>
Resent-Message-ID: <200802071010.m17AA0Oq053408@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         120340
>Category:       ports
>Synopsis:       port irc/ircII broken on amd64/7.0R [patch included]
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Feb 07 10:10:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Stefan `Sec` Zehl
>Release:        FreeBSD 7.0-PRERELEASE amd64
>Organization:
>Environment:
System: FreeBSD ice 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE #0: Wed Feb  6 12:55:25 UTC 2008     sec@ice:/usr/obj/usr/src/sys/GENERIC  amd64


	
>Description:

irc/ircII is marked broken on RELENG_7 / amd64 with
"doesn't build"

During the build process "mksiginc" core dumps because of a write outside
allocated memory.

The problem is, that it allocates an array of NSIG entries, but writes to
SIGRTMAX. At least on RELENG_7 / amd64, SIGRTMAX is way bigger than NSIG
so this (correctly) fails.

I fixed this, by increasing the array size to SIGRTMAX. ircII appears to
compile and run without any further problems after this fix.

>How-To-Repeat:
	
>Fix:

put the following patch into irc/ircII/files/patch-amd64

and remove the BROKEN= part from the Makefile :-)

--- source/mksiginc.c.orig      2004-02-16 10:00:58.000000000 +0000
+++ source/mksiginc.c   2008-02-07 09:53:07.000000000 +0000
@@ -39,7 +39,11 @@
 #define NSIG 64
 #endif
 
+#if defined(SIGRTMAX) && (SIGRTMAX > NSIG)
+#define MAXSIG SIGRTMAX+1
+#else
 #define MAXSIG NSIG+1
+#endif
 char *signames[MAXSIG];
 
 int main(int, char *[], char *[]);

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080207100800.92003B848>