diff options
Diffstat (limited to 'plugins')
| -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 | ||
