]> git.ozlabs.org Git - petitboot/blobdiff - lib/talloc/talloc.c
configure.ac: Fix unmatched brackets
[petitboot] / lib / talloc / talloc.c
index 95a0a6a0b395a82990170e1efae5227f8fdce544..d3e2065d36f3b5e34008fa5d075f587245c58c1a 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 
+#if !defined(NDEBUG)
+#include <assert.h>
+#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 <sys/types.h>
 #endif
@@ -753,7 +760,7 @@ off_t talloc_total_blocks(const void *ptr)
 /*
   return the number of external references to a pointer
 */
-static int talloc_reference_count(const void *ptr)
+int talloc_reference_count(const void *ptr)
 {
        struct talloc_chunk *tc = talloc_chunk_from_ptr(ptr);
        struct talloc_reference_handle *h;
@@ -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;
 }