X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=talloc%2Ftalloc.c;h=d624b9174dde42b8e892fb5764cb9544bd249671;hp=70c2947f47fba7f5e016832893be14e2550eae06;hb=2d6759d42218bef651c0ece58fe36212099a313c;hpb=29149d39d59c6b46535f237563732092397331f0 diff --git a/talloc/talloc.c b/talloc/talloc.c index 70c2947f..d624b917 100644 --- a/talloc/talloc.c +++ b/talloc/talloc.c @@ -34,6 +34,7 @@ #include "talloc.h" #include #include +#include /* use this to force every realloc to change the pointer, to stress test code that might not cope */ @@ -730,7 +731,11 @@ void *talloc_named_const(const void *context, size_t size, const char *name) */ int talloc_free(void *ptr) { - return _talloc_free(ptr); + int saved_errno = errno, ret; + ret = _talloc_free(ptr); + if (ret == 0) + errno = saved_errno; + return ret; } @@ -1102,7 +1107,7 @@ char *talloc_strdup(const void *t, const char *p) /* append to a talloced string */ -char *talloc_append_string(const void *t, char *orig, const char *append) +char *talloc_append_string(char *orig, const char *append) { char *ret; size_t olen = strlen(orig); @@ -1113,7 +1118,7 @@ char *talloc_append_string(const void *t, char *orig, const char *append) alenz = strlen(append) + 1; - ret = talloc_realloc(t, orig, char, olen + alenz); + ret = talloc_realloc(NULL, orig, char, olen + alenz); if (!ret) return NULL;