]> rtime.felk.cvut.cz Git - ulut.git/commitdiff
uLUt: ul_dbuff_cat do at least partial copy if a space for all data cannot be allocated.
authorPavel Pisa <pisa@cmp.felk.cvut.cz>
Sat, 17 Oct 2015 16:45:31 +0000 (18:45 +0200)
committerPavel Pisa <pisa@cmp.felk.cvut.cz>
Sat, 17 Oct 2015 16:45:31 +0000 (18:45 +0200)
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
ulut/ul_dbufmore.c

index cc220a333b359c9c1904deb642e6cb91b3810248..cf7afaba4830d141c467fb6e823b1d3a224abd14 100644 (file)
@@ -172,6 +172,8 @@ int ul_dbuff_cat(ul_dbuff_t *buf, const void *b, int n)
     if(new_len == ul_dbuff_set_len(buf, new_len)) {
         memcpy(buf->data + old_len, b, n);
     } else {
+        if (old_len < buf->len)
+            memcpy(buf->data + old_len, b, buf->len - old_len);
        #ifdef UL_DBUFF_LOGGING
         ul_logdeb("ul_dbuff_cat: set_len(%lu) error, old_len == %lu\n, act len == %lu\n", new_len, old_len, buf->len);
        #endif