diff options
-rw-r--r-- | plugins/utils.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/plugins/utils.c b/plugins/utils.c index 8bec1cf1..d97ad480 100644 --- a/plugins/utils.c +++ b/plugins/utils.c @@ -404,17 +404,19 @@ strscat (char *dest, const char *src) { size_t len, l2; - if (src) - l2 = strlen (src); - else + if (src == NULL) return dest; - - if (dest) - len = strlen (dest); else + l2 = strlen (src); + + if (dest == NULL) { len = 0; + dest = malloc (l2 + 1); + } else { + len = strlen (dest); + dest = realloc (dest, len + l2 + 1); + } - dest = realloc (dest, len + l2 + 1); if (dest == NULL) terminate (STATE_UNKNOWN, "failed malloc in strscat\n"); |