]> git.sur5r.net Git - bacula/bacula/commitdiff
Fix bug in bstrncat
authorKern Sibbald <kern@sibbald.com>
Tue, 8 Dec 2009 06:58:34 +0000 (07:58 +0100)
committerKern Sibbald <kern@sibbald.com>
Tue, 8 Dec 2009 06:58:34 +0000 (07:58 +0100)
bacula/src/lib/bsys.c

index a23d041fa9c3c01cf049393fb0b246f3490f4422..7527ec412257e57a3545180c26354faeeaede86c 100644 (file)
@@ -108,14 +108,21 @@ char *bstrncpy(char *dest, POOL_MEM &src, int maxlen)
 
 char *bstrncat(char *dest, const char *src, int maxlen)
 {
-   strncat(dest, src, maxlen-1);
+   int len = strlen(dest);
+   if (len < maxlen-1) {
+      strncpy(dest+len, src, maxlen-len-1);
+   }
    dest[maxlen-1] = 0;
    return dest;
 }
 
 char *bstrncat(char *dest, POOL_MEM &src, int maxlen)
 {
-   strncat(dest, src.c_str(), maxlen-1);
+
+   int len = strlen(dest);
+   if (len < maxlen-1) {
+      strncpy(dest+len, src.c_str(), maxlen-len-1);
+   }
    dest[maxlen-1] = 0;
    return dest;
 }