X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=klibc%2Fklibc%2Fstrlcat.c;h=fdd72ac392c5b910f19c5e66ecc6227f1577e41a;hp=6111445f0629948c738ecd91b2cd2fe54a86c5db;hb=4f8d44c220d811352b63c65b5a66403339005aac;hpb=a0622777688ad84ef3d789e0171cfb0ca3dc21d2;ds=sidebyside diff --git a/klibc/klibc/strlcat.c b/klibc/klibc/strlcat.c index 6111445f0..fdd72ac39 100644 --- a/klibc/klibc/strlcat.c +++ b/klibc/klibc/strlcat.c @@ -16,15 +16,18 @@ size_t strlcat(char *dst, const char *src, size_t size) q++; bytes++; } + if (bytes == size) + return (bytes + strlen(src)); while ( (ch = *p++) ) { - if ( bytes < size ) + if ( bytes+1 < size ) *q++ = ch; bytes++; } - *q = '\0'; + if (size) + *q = '\0'; return bytes; }