From 284868b249cd0f39ef4ef3cf2eb476b0b20ad29a Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Thu, 18 Feb 2021 15:52:35 +0100 Subject: [PATCH] memory_utils: add close_equal() and free_equal() Signed-off-by: Christian Brauner --- src/lxc/memory_utils.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/lxc/memory_utils.h b/src/lxc/memory_utils.h index bb7963c5f..fb9e1ae4e 100644 --- a/src/lxc/memory_utils.h +++ b/src/lxc/memory_utils.h @@ -95,4 +95,21 @@ static inline void *memdup(const void *data, size_t len) (a) = move_fd((b)); \ }) +#define close_equal(a, b) \ + ({ \ + if (a >= 0 && a != b) \ + close(a); \ + if (close >= 0) \ + close(b); \ + a = b = -EBADF; \ + }) + +#define free_equal(a, b) \ + ({ \ + if (a != b) \ + free(a); \ + free(b); \ + a = b = NULL; \ + }) + #endif /* __LXC_MEMORY_UTILS_H */ -- 2.47.2