]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
utils: indicate file and line on memory allocation errors
authorPablo Neira Ayuso <pablo@netfilter.org>
Tue, 4 Nov 2014 13:27:22 +0000 (14:27 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 4 Nov 2014 16:34:26 +0000 (17:34 +0100)
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>
include/utils.h
src/utils.c

index cc5948c18d5e0fbe18b3bd1f5f5adc32cfb14342..15b2e3933080c025ab3cf4e38a1adb382183870c 100644 (file)
        (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);
index 96ff4192a0d70c3d2025e54b42abf4f5cdc35ea9..88708e78f3e2c2091f71f54cde10d673d1784b98 100644 (file)
@@ -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);
 }