memory: squeal when there is something wrong, instead of stumbling on

When copying a string, source and destination may not be equal --
complain loudly when they are, instead of failing to free memory.

Also, instead of freeing the destination string and then allocating
it afresh, just reallocate it -- that should be slightly quicker.
master
Benno Schulenberg 2018-02-07 18:09:15 +01:00
parent d865d7ac8f
commit 204e1b8353
1 changed files with 3 additions and 3 deletions

View File

@ -378,10 +378,10 @@ char *mallocstrncpy(char *dest, const char *src, size_t n)
if (src == NULL)
src = "";
if (src != dest)
free(dest);
if (src == dest)
fprintf(stderr, "\r*** Copying a string to itself -- please report a bug ***");
dest = charalloc(n);
dest = charealloc(dest, n);
strncpy(dest, src, n);
return dest;