]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
memory_utils: add close_equal() and free_equal()
authorChristian Brauner <christian.brauner@ubuntu.com>
Thu, 18 Feb 2021 14:52:35 +0000 (15:52 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Thu, 18 Feb 2021 14:52:35 +0000 (15:52 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/memory_utils.h

index bb7963c5fddbcabb961c16db3eb083d22259d761..fb9e1ae4ee04cdb9a5a836de088bfc4d5e399474 100644 (file)
@@ -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 */