Commit Diff


commit - 26b0ddf200690284feea19cec47e092641b62b6d
commit + 6c5f4beb53d5e37fefe017cf28c513c44cfda1af
blob - 1c9de511e9b8110c1be7276f5a0b326ff8958036
blob + 6e24d3b626e935810c4180672d1e9c6c61afd8e4
--- ChangeLog
+++ ChangeLog
@@ -12,6 +12,10 @@
 
 ngIRCd CVSHEAD
 
+  - Fixed return values of our own implementation of strlcpy(). The code has
+    been taken from rsync and they fixed it, but we didn't until today :-/
+    It has only been used when the system didn't implement strlcpy by itself,
+    not on "modern" systems. Florian Westphal, <westphal@foo.fh-furtwangen.de>.
   - Raised the maximum length of passwords to 20 characters.
   - Fixed a memory leak when resizing the connection pool and realloc()
     failed. Now we don't fall back to malloc(), which should be sane anyway.
@@ -557,4 +561,4 @@ ngIRCd 0.0.1, 31.12.2001
 
 
 -- 
-$Id: ChangeLog,v 1.250 2005/01/17 13:01:34 alex Exp $
+$Id: ChangeLog,v 1.251 2005/01/18 09:05:37 alex Exp $
blob - f77527a09f068788d34a97c0ec53ad3c63c39f28
blob + 627b3218839319c588a7068c162643422538e939
--- src/portab/strlcpy.c
+++ src/portab/strlcpy.c
@@ -19,7 +19,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: strlcpy.c,v 1.2 2002/12/26 14:34:11 alex Exp $";
+static char UNUSED id[] = "$Id: strlcpy.c,v 1.3 2005/01/18 09:05:37 alex Exp $";
 
 #include "imp.h"
 #include <string.h>
@@ -61,12 +61,13 @@ strlcpy( CHAR *dst, CONST CHAR *src, size_t size )
 	 * always null terminates. */
 
 	size_t len = strlen( src );
+	size_t ret = len;
 
-	if( size <= 0 ) return len;
+	if( size <= 0 ) return 0;
 	if( len >= size ) len = size - 1;
 	memcpy( dst, src, len );
 	dst[len] = 0;
-	return len;
+	return ret;
 } /* strlcpy */
 
 #endif