aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/utils.c16
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");