From b92027ac9e29659483a5e920e548fe74126f72af Mon Sep 17 00:00:00 2001
From: cgzones <cgzones@googlemail.com>
Date: Wed, 1 Nov 2023 22:15:40 +0100
Subject: [PATCH] memory allocation updates (#341)

* Check memory allocation

Avoid later NULL dereference.

* Check memory allocation and merge zeroing

Avoid later NULL dereference.

Reference:https://github.com/linux-audit/audit-userspace/commit/b92027ac9e29659483a5e920e548fe74126f72af
Conflict:NA

---
 auparse/interpret.c | 2 ++
 lib/libaudit.c      | 7 +++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/auparse/interpret.c b/auparse/interpret.c
index ecde07ae..76ca2814 100644
--- a/auparse/interpret.c
+++ b/auparse/interpret.c
@@ -366,6 +366,8 @@ char *au_unescape(char *buf)
 	// strlen(buf) / 2.
 	olen = strlen(buf);
 	str = malloc(olen+1);
+	if (!str)
+		return NULL;
 
         saved = *ptr;
         *ptr = 0;
diff --git a/lib/libaudit.c b/lib/libaudit.c
index 6a42871b..d90d83b8 100644
--- a/lib/libaudit.c
+++ b/lib/libaudit.c
@@ -891,9 +891,12 @@ int audit_make_equivalent(int fd, const char *mount_point,
 	struct {
 		uint32_t sizes[2];
 		unsigned char buf[];
-	} *cmd = malloc(sizeof(*cmd) + len1 + len2);
+	} *cmd = calloc(1, sizeof(*cmd) + len1 + len2);
 
-	memset(cmd, 0, sizeof(*cmd) + len1 + len2);
+	if (!cmd) {
+		audit_msg(LOG_ERR, "Cannot allocate memory!");
+		return -ENOMEM;
+	}
 
 	cmd->sizes[0] = len1;
 	cmd->sizes[1] = len2;
-- 
2.33.0

