From: Christian Brauner Date: Thu, 18 Feb 2021 14:52:35 +0000 (+0100) Subject: memory_utils: add close_equal() and free_equal() X-Git-Tag: lxc-5.0.0~278^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=284868b249cd0f39ef4ef3cf2eb476b0b20ad29a;p=thirdparty%2Flxc.git memory_utils: add close_equal() and free_equal() Signed-off-by: Christian Brauner --- 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 */