Loading...
string/FreeBSD/strxfrm.c Libc-763.11 Libc-498
--- Libc/Libc-763.11/string/FreeBSD/strxfrm.c
+++ Libc/Libc-498/string/FreeBSD/strxfrm.c
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/string/strxfrm.c,v 1.17 2008/10/19 09:10:44 delphij Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/string/strxfrm.c,v 1.15 2002/09/06 11:24:06 tjr Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -45,8 +45,18 @@
 		return 0;
 	}
 
-	if (__collate_load_error)
-		return strlcpy(dest, src, len);
+	if (__collate_load_error) {
+		slen = strlen(src);
+		if (len > 0) {
+			if (slen < len)
+				strcpy(dest, src);
+			else {
+				strncpy(dest, src, len - 1);
+				dest[len - 1] = '\0';
+			}
+		}
+		return slen;
+	}
 
 	slen = 0;
 	prim = sec = 0;