summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2005-01-18 09:05:37 +0000
committerAlexander Barton <alex@barton.de>2005-01-18 09:05:37 +0000
commit6c5f4beb53d5e37fefe017cf28c513c44cfda1af (patch)
tree31cef46aedf74dbe93622d0c045709b43bb35be3
parent26b0ddf200690284feea19cec47e092641b62b6d (diff)
downloadngircd-6c5f4beb53d5e37fefe017cf28c513c44cfda1af.tar.gz
ngircd-6c5f4beb53d5e37fefe017cf28c513c44cfda1af.zip
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 :-/
-rw-r--r--ChangeLog6
-rw-r--r--src/portab/strlcpy.c7
2 files changed, 9 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 1c9de511..6e24d3b6 100644
--- a/ChangeLog
+++ b/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 $
diff --git a/src/portab/strlcpy.c b/src/portab/strlcpy.c
index f77527a0..627b3218 100644
--- a/src/portab/strlcpy.c
+++ b/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