Loading...
string/FreeBSD/strerror.c.patch Libc-763.11 Libc-498
--- Libc/Libc-763.11/string/FreeBSD/strerror.c.patch
+++ Libc/Libc-498/string/FreeBSD/strerror.c.patch
@@ -1,8 +1,8 @@
---- strerror.c.orig	2010-10-07 16:06:39.000000000 -0700
-+++ strerror.c	2010-10-07 16:17:59.000000000 -0700
-@@ -52,12 +52,13 @@ __FBSDID("$FreeBSD: src/lib/libc/string/
+--- strerror.c.orig	2004-11-25 11:38:47.000000000 -0800
++++ strerror.c	2005-04-30 01:26:56.000000000 -0700
+@@ -50,12 +50,13 @@
   */
- #define	EBUFSIZE	(20 + 2 + sizeof(UPREFIX))
+ #define	EBUFSIZE	(20 + sizeof(UPREFIX))
  
 +#ifndef BUILDING_VARIANT
  /*
@@ -10,26 +10,25 @@
   * statically linked binaries.
   */
 -static void
--errstr(int num, char *uprefix, char *buf, size_t len)
+-errstr(int num, char *buf, size_t len)
 +__private_extern__ void
-+__errstr(int num, char *uprefix, char *buf, size_t len)
++__errstr(int num, char *buf, size_t len)
  {
  	char *t;
  	unsigned int uerr;
-@@ -87,8 +88,8 @@ strerror_r(int errnum, char *strerrbuf, 
- 	catd = catopen("libc", NL_CAT_LOCALE);
- #endif
+@@ -77,14 +78,17 @@
+ strerror_r(int errnum, char *strerrbuf, size_t buflen)
+ {
  
 -	if (errnum < 1 || errnum >= sys_nerr) {
--		errstr(errnum,
+-		errstr(errnum, strerrbuf, buflen);
 +	if (errnum < 0 || errnum >= sys_nerr) {
-+		__errstr(errnum,
- #if defined(NLS)
- 			catgets(catd, 1, 0xffff, UPREFIX),
- #else
-@@ -114,13 +115,20 @@ strerror_r(int errnum, char *strerrbuf, 
- 
- 	return (retval);
++		__errstr(errnum, strerrbuf, buflen);
+ 		return (EINVAL);
+ 	}
+ 	if (strlcpy(strerrbuf, sys_errlist[errnum], buflen) >= buflen)
+ 		return (ERANGE);
+ 	return (0);
  }
 +#else /* BUILDING_VARIANT */
 +__private_extern__ void __errstr(int, char *, size_t);
@@ -37,14 +36,14 @@
  
  char *
  strerror(int num)
- {
- 	static char ebuf[NL_TEXTMAX];
+@@ -93,7 +97,9 @@
  
+ 	if (num > 0 && num < sys_nerr)
+ 		return ((char *)sys_errlist[num]);
 +#if !__DARWIN_UNIX03
- 	if (strerror_r(num, ebuf, sizeof(ebuf)) != 0)
  	errno = EINVAL;
-+#else
-+	(void)strerror_r(num, ebuf, sizeof(ebuf));
-+#endif
+-	errstr(num, ebuf, sizeof(ebuf));
++#endif /* !__DARWIN_UNIX03 */
++	__errstr(num, ebuf, sizeof(ebuf));
  	return (ebuf);
  }