Fix bug #5578, reported by sendel2000@hotbox.ru. Bad (non-Samba) use of strlcat gives...
authorJeremy Allison <jra@samba.org>
Wed, 2 Jul 2008 18:58:07 +0000 (11:58 -0700)
committerJeremy Allison <jra@samba.org>
Wed, 2 Jul 2008 18:58:07 +0000 (11:58 -0700)
Jeremy.

source/client/mount.cifs.c
source/lib/replace/replace.c

index 8cd709bf26679cbba15bfe4d4505a4156d6e64ba..fd62dec125bdb22122af239f70c81f5b44c89228 100755 (executable)
@@ -107,6 +107,9 @@ size_t strlcat(char *d, const char *s, size_t bufsize)
        size_t ret = len1 + len2;
 
        if (len1+len2 >= bufsize) {
+               if (bufsize < (len1+1)) {
+                       return ret;
+               }
                len2 = bufsize - (len1+1);
        }
        if (len2 > 0) {
index db299130e5197e04d78730e32e656310572303b9..43f7e8628a6d85d9624ce68272e403531311d45d 100644 (file)
@@ -84,6 +84,9 @@ size_t rep_strlcat(char *d, const char *s, size_t bufsize)
        size_t ret = len1 + len2;
 
        if (len1+len2 >= bufsize) {
+               if (bufsize < (len1+1)) {
+                       return ret;
+               }
                len2 = bufsize - (len1+1);
        }
        if (len2 > 0) {