From: Pablo Neira Ayuso Date: Tue, 4 Nov 2014 13:27:22 +0000 (+0100) Subject: utils: indicate file and line on memory allocation errors X-Git-Tag: v0.4~50 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3cc636eda67c9dd416e584e21ccb9031d44dcbd0;p=thirdparty%2Fnftables.git utils: indicate file and line on memory allocation errors For example: src/netlink.c:179: Memory allocation failure This shouldn't happen, so this allows us to identify at what point the memory allocation failure has happened. It may be helpful to identify bugs. Signed-off-by: Pablo Neira Ayuso --- diff --git a/include/utils.h b/include/utils.h index cc5948c1..15b2e393 100644 --- a/include/utils.h +++ b/include/utils.h @@ -76,7 +76,10 @@ (void) (&_max1 == &_max2); \ _max1 > _max2 ? _max1 : _max2; }) -extern void memory_allocation_error(void) __noreturn; +extern void __memory_allocation_error(const char *filename, uint32_t line) __noreturn; + +#define memory_allocation_error() \ + __memory_allocation_error(__FILE__, __LINE__); extern void xfree(const void *ptr); extern void *xmalloc(size_t size); diff --git a/src/utils.c b/src/utils.c index 96ff4192..88708e78 100644 --- a/src/utils.c +++ b/src/utils.c @@ -18,9 +18,9 @@ #include #include -void __noreturn memory_allocation_error(void) +void __noreturn __memory_allocation_error(const char *filename, uint32_t line) { - fprintf(stderr, "Memory allocation failure\n"); + fprintf(stderr, "%s:%u: Memory allocation failure\n", filename, line); exit(NFT_EXIT_NOMEM); }