diff options
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/utils.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/plugins/utils.c b/plugins/utils.c index 697b5a66..a4519f25 100644 --- a/plugins/utils.c +++ b/plugins/utils.c | |||
| @@ -353,13 +353,7 @@ strip (char *buffer) | |||
| 353 | 353 | ||
| 354 | /****************************************************************************** | 354 | /****************************************************************************** |
| 355 | * | 355 | * |
| 356 | * Copies one string to another | 356 | * Copies one string to another. Any previously existing data in |
| 357 | * | ||
| 358 | * Given a pointer destination string, which may or may not already | ||
| 359 | * hold some text, and a source string with additional text (possibly | ||
| 360 | * NULL or empty), returns a pointer to a a copy of the source | ||
| 361 | * string. Uses realloc to free memory held by the dest argument if | ||
| 362 | * new storage space is required, and any previously existing data in | ||
| 363 | * the destination string is lost. | 357 | * the destination string is lost. |
| 364 | * | 358 | * |
| 365 | * Example: | 359 | * Example: |
| @@ -375,17 +369,9 @@ strscpy (char *dest, const char *src) | |||
| 375 | size_t len; | 369 | size_t len; |
| 376 | 370 | ||
| 377 | if (src == NULL) | 371 | if (src == NULL) |
| 378 | return dest; | 372 | return NULL; |
| 379 | |||
| 380 | len = strlen (src) + 1; | ||
| 381 | if (dest == NULL) | ||
| 382 | dest = malloc (len); | ||
| 383 | else if (strlen (dest) < len) | ||
| 384 | dest = realloc (dest, len); | ||
| 385 | if (dest == NULL) | ||
| 386 | terminate (STATE_UNKNOWN, "failed realloc in strscpy\n"); | ||
| 387 | 373 | ||
| 388 | strncpy (dest, src, len); | 374 | asprintf (&dest, "%s", src); |
| 389 | 375 | ||
| 390 | return dest; | 376 | return dest; |
| 391 | } | 377 | } |
