diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2014-11-04 14:27:22 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2014-11-04 17:34:26 +0100 |
commit | 3cc636eda67c9dd416e584e21ccb9031d44dcbd0 (patch) | |
tree | bc2e4c7e222add76083c864f05af7b1d9f07e0c0 | |
parent | a7469ab47400bf4add8269a2908965e82ceefc48 (diff) |
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 <pablo@netfilter.org>
-rw-r--r-- | include/utils.h | 5 | ||||
-rw-r--r-- | src/utils.c | 4 |
2 files changed, 6 insertions, 3 deletions
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 <nftables.h> #include <utils.h> -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); } |