Loading...
string/FreeBSD/strsignal.c.patch Libc-763.12 Libc-320
--- Libc/Libc-763.12/string/FreeBSD/strsignal.c.patch
+++ Libc/Libc-320/string/FreeBSD/strsignal.c.patch
@@ -1,77 +1,11 @@
---- strsignal.c.orig	2010-01-24 02:35:26.000000000 -0800
-+++ strsignal.c	2010-05-06 12:29:53.000000000 -0700
-@@ -47,8 +47,6 @@ __FBSDID("$FreeBSD: src/lib/libc/string/
+--- strsignal.c.orig	Thu Mar 21 10:44:54 2002
++++ strsignal.c	Thu May  8 00:44:31 2003
+@@ -52,7 +52,7 @@
+ 	char tmp[40];
  
- #define	UPREFIX		"Unknown signal"
+ 	signum = num;				/* convert to unsigned */
+-	if (signum < sys_nsig)
++	if (signum < NSIG)
+ 		return ((char *)sys_siglist[signum]);
  
--static char		sig_ebuf[NL_TEXTMAX];
--static char		sig_ebuf_err[NL_TEXTMAX];
- static once_t		sig_init_once = ONCE_INITIALIZER;
- static thread_key_t	sig_key;
- static int		sig_keycreated = 0;
-@@ -64,25 +62,19 @@ sig_tlsalloc(void)
- {
- 	char *ebuf = NULL;
- 
--	if (thr_main() != 0)
--		ebuf = sig_ebuf;
--	else {
--		if (thr_once(&sig_init_once, sig_keycreate) != 0 ||
--		    !sig_keycreated)
-+	if (thr_once(&sig_init_once, sig_keycreate) != 0 ||
-+	    !sig_keycreated)
-+		goto thr_err;
-+	if ((ebuf = thr_getspecific(sig_key)) == NULL) {
-+		if ((ebuf = malloc(NL_TEXTMAX * sizeof(char))) == NULL)
-+			goto thr_err;
-+		if (thr_setspecific(sig_key, ebuf) != 0) {
-+			free(ebuf);
-+			ebuf = NULL;
- 			goto thr_err;
--		if ((ebuf = thr_getspecific(sig_key)) == NULL) {
--			if ((ebuf = malloc(sizeof(sig_ebuf))) == NULL)
--				goto thr_err;
--			if (thr_setspecific(sig_key, ebuf) != 0) {
--				free(ebuf);
--				ebuf = NULL;
--				goto thr_err;
--			}
- 		}
- 	}
- thr_err:
--	if (ebuf == NULL)
--		ebuf = sig_ebuf_err;
- 	return (ebuf);
- }
- 
-@@ -103,15 +95,19 @@ strsignal(int num)
- #endif
- 
- 	ebuf = sig_tlsalloc();
-+	if(ebuf == NULL) {
-+		errno = ENOMEM;
-+		return NULL;
-+	}
- 
--	if (num > 0 && num < sys_nsig) {
-+	if (num > 0 && num < NSIG) {
- 		n = strlcpy(ebuf,
- #if defined(NLS)
- 			catgets(catd, 2, num, sys_siglist[num]),
- #else
- 			sys_siglist[num],
- #endif
--			sizeof(sig_ebuf));
-+			NL_TEXTMAX * sizeof(char));
- 	} else {
- 		n = strlcpy(ebuf,
- #if defined(NLS)
-@@ -119,7 +115,7 @@ strsignal(int num)
- #else
- 			UPREFIX,
- #endif
--			sizeof(sig_ebuf));
-+			NL_TEXTMAX * sizeof(char));
- 	}
- 
- 	signum = num;
+ 	/* Do this by hand, so we don't link to stdio(3). */