diff options
Diffstat (limited to 'plugins/utils.c')
-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) | |||
404 | { | 404 | { |
405 | size_t len, l2; | 405 | size_t len, l2; |
406 | 406 | ||
407 | if (src) | 407 | if (src == NULL) |
408 | l2 = strlen (src); | ||
409 | else | ||
410 | return dest; | 408 | return dest; |
411 | |||
412 | if (dest) | ||
413 | len = strlen (dest); | ||
414 | else | 409 | else |
410 | l2 = strlen (src); | ||
411 | |||
412 | if (dest == NULL) { | ||
415 | len = 0; | 413 | len = 0; |
414 | dest = malloc (l2 + 1); | ||
415 | } else { | ||
416 | len = strlen (dest); | ||
417 | dest = realloc (dest, len + l2 + 1); | ||
418 | } | ||
416 | 419 | ||
417 | dest = realloc (dest, len + l2 + 1); | ||
418 | if (dest == NULL) | 420 | if (dest == NULL) |
419 | terminate (STATE_UNKNOWN, "failed malloc in strscat\n"); | 421 | terminate (STATE_UNKNOWN, "failed malloc in strscat\n"); |
420 | 422 | ||