X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=lib%2Ftalloc%2Ftalloc.c;h=f2335410eac65a812c50103b957daa1a522cdc05;hp=95a0a6a0b395a82990170e1efae5227f8fdce544;hb=81f28af2bd94cc552aef1a7b959e4c6b84457ce7;hpb=f5d6bf0af6aa5e6f1d51e00a617910ddfb76e32c diff --git a/lib/talloc/talloc.c b/lib/talloc/talloc.c index 95a0a6a..f233541 100644 --- a/lib/talloc/talloc.c +++ b/lib/talloc/talloc.c @@ -41,6 +41,13 @@ #include #include +#if !defined(NDEBUG) +#include +#define TALLOC_ABORT(reason) do{ \ + fprintf(stderr, "%s: name: %s\n", __func__, tc->name); \ + assert(0 && reason);} while (0) +#endif + #ifdef HAVE_SYS_TYPES_H #include #endif @@ -977,6 +984,7 @@ char *talloc_vasprintf(const void *t, const char *fmt, va_list ap) talloc_set_name_const(ret, ret); } + va_end(ap2); return ret; } @@ -1024,13 +1032,16 @@ static char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap) len = vsnprintf(NULL, 0, fmt, ap2); s = talloc_realloc(NULL, s, char, s_len + len+1); - if (!s) return NULL; + if (!s) + goto out; VA_COPY(ap2, ap); vsnprintf(s+s_len, len+1, fmt, ap2); talloc_set_name_const(s, s); +out: + va_end(ap2); return s; }