57 lines
1.4 KiB
Diff
57 lines
1.4 KiB
Diff
|
|
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
|
||
|
|
|