metaflac : Fix local_strcat() to terminate string correctly.
authorMiroslav Lichvar <mlichvar@redhat.com>
Mon, 3 Jun 2013 11:09:05 +0000 (13:09 +0200)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Wed, 5 Jun 2013 08:50:42 +0000 (18:50 +1000)
The NUL char is written at incorrect place when the destination string
is longer than 0, which causes memory corruption. It was broken by
commit 2d6354ff2a618a79d40edbd4f208b4b07c5422f1.

Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
src/metaflac/utils.c

index 097537b..8a31daa 100644 (file)
@@ -75,7 +75,7 @@ void local_strcat(char **dest, const char *source)
        *dest = safe_realloc_add_3op_(*dest, ndest, /*+*/nsource, /*+*/1);
        if(0 == *dest)
                die("out of memory growing string");
-       safe_strncpy((*dest)+ndest, source, ndest + nsource + 1);
+       safe_strncpy((*dest)+ndest, source, nsource + 1);
 }
 
 static inline int local_isprint(int c)