1 Star 0 Fork 48

lxpzero/systemd

forked from src-anolis-os/systemd 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
10015-util-introduce-erase_and_free-helper.patch 1.17 KB
一键复制 编辑 原始数据 按行查看 历史
From 7c48fe64e3f1cdc61d9191d5e004d56d5244aa2c Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Thu, 8 Aug 2019 19:53:17 +0200
Subject: [PATCH] util: introduce erase_and_free() helper
(cherry picked from commit a20dda788d5a0f3b300e0d8bb34e45be335e2915)
Signed-off-by: Guorui Yu <GuoRui.Yu@linux.alibaba.com>
---
src/basic/util.h | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/src/basic/util.h b/src/basic/util.h
index ab3314f82e..4f4877b6b0 100644
--- a/src/basic/util.h
+++ b/src/basic/util.h
@@ -5,6 +5,7 @@
#include <errno.h>
#include <fcntl.h>
#include <inttypes.h>
+#include <malloc.h>
#include <limits.h>
#include <locale.h>
#include <stdarg.h>
@@ -251,3 +252,20 @@ static inline void* explicit_bzero_safe(void *p, size_t l) {
#else
void *explicit_bzero_safe(void *p, size_t l);
#endif
+
+static inline void* erase_and_free(void *p) {
+ size_t l;
+
+ if (!p)
+ return NULL;
+
+ l = malloc_usable_size(p);
+ explicit_bzero_safe(p, l);
+ free(p);
+
+ return NULL;
+}
+
+static inline void erase_and_freep(void *p) {
+ erase_and_free(*(void**) p);
+}
--
2.39.1
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/lxpzero/systemd.git
git@gitee.com:lxpzero/systemd.git
lxpzero
systemd
systemd
a8

搜索帮助