So these functions can be used from main.c and cli.c.
This patch reverts 7c0407c5ca53 ("nft: don't use xzalloc()").
Suggested-by: Phil Sutter <[email protected]>
Signed-off-by: Pablo Neira Ayuso <[email protected]>
---
include/utils.h | 29 ++++++++++++++++++++++++++---
src/main.c | 8 +-------
src/utils.c | 24 ------------------------
3 files changed, 27 insertions(+), 34 deletions(-)
diff --git a/include/utils.h b/include/utils.h
index 647e8bbe0030..5f3f49d2e87a 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -128,11 +128,34 @@ extern void __memory_allocation_error(const char
*filename, uint32_t line) __nor
#define memory_allocation_error() \
__memory_allocation_error(__FILE__, __LINE__);
-extern void xfree(const void *ptr);
-extern void *xmalloc(size_t size);
+static inline void *xmalloc(size_t size)
+{
+ void *ptr;
+
+ ptr = malloc(size);
+ if (ptr == NULL)
+ memory_allocation_error();
+
+ return ptr;
+}
+
+static inline void *xzalloc(size_t size)
+{
+ void *ptr;
+
+ ptr = xmalloc(size);
+ memset(ptr, 0, size);
+
+ return ptr;
+}
+
+static inline void xfree(const void *ptr)
+{
+ free((void *)ptr);
+}
+
extern void *xmalloc_array(size_t nmemb, size_t size);
extern void *xrealloc(void *ptr, size_t size);
-extern void *xzalloc(size_t size);
extern char *xstrdup(const char *s);
extern void xstrunescape(const char *in, char *out);
diff --git a/src/main.c b/src/main.c
index 8e6c897cdd36..cbfd69a42d04 100644
--- a/src/main.c
+++ b/src/main.c
@@ -19,7 +19,6 @@
#include <sys/types.h>
#include <nftables/libnftables.h>
-#include <nftables.h>
#include <utils.h>
#include <cli.h>
@@ -303,12 +302,7 @@ int main(int argc, char * const *argv)
for (len = 0, i = optind; i < argc; i++)
len += strlen(argv[i]) + strlen(" ");
- buf = calloc(1, len);
- if (buf == NULL) {
- fprintf(stderr, "%s:%u: Memory allocation failure\n",
- __FILE__, __LINE__);
- exit(NFT_EXIT_NOMEM);
- }
+ buf = xzalloc(len);
for (i = optind; i < argc; i++) {
strcat(buf, argv[i]);
if (i + 1 < argc)
diff --git a/src/utils.c b/src/utils.c
index 47f5b791547b..da7547d8b989 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -24,21 +24,6 @@ void __noreturn __memory_allocation_error(const char
*filename, uint32_t line)
exit(NFT_EXIT_NOMEM);
}
-void xfree(const void *ptr)
-{
- free((void *)ptr);
-}
-
-void *xmalloc(size_t size)
-{
- void *ptr;
-
- ptr = malloc(size);
- if (ptr == NULL)
- memory_allocation_error();
- return ptr;
-}
-
void *xmalloc_array(size_t nmemb, size_t size)
{
assert(size != 0);
@@ -58,15 +43,6 @@ void *xrealloc(void *ptr, size_t size)
return ptr;
}
-void *xzalloc(size_t size)
-{
- void *ptr;
-
- ptr = xmalloc(size);
- memset(ptr, 0, size);
- return ptr;
-}
-
char *xstrdup(const char *s)
{
char *res;
--
2.11.0