audit/backport-Fix-double-free-with-corrupted-logs.patch

37 lines
854 B
Diff
Raw Normal View History

From 0177e03f0809da0007f09504b789eba4b8cbe739 Mon Sep 17 00:00:00 2001
From: Steve Grubb <sgrubb@redhat.com>
Date: Fri, 6 Aug 2021 17:03:41 -0400
Subject: [PATCH] Fix double free with corrupted logs
---
src/ausearch-parse.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/ausearch-parse.c b/src/ausearch-parse.c
index 9ee4a4f..cb7d481 100644
--- a/src/ausearch-parse.c
+++ b/src/ausearch-parse.c
@@ -420,8 +420,10 @@ try_again:
str = strstr(term, "comm=");
if (str) {
/* Make the syscall one override */
- if (s->comm)
+ if (s->comm) {
free(s->comm);
+ s->comm = NULL;
+ }
str += 5;
if (*str == '"') {
str++;
@@ -431,7 +433,7 @@ try_again:
*term = 0;
s->comm = strdup(str);
*term = '"';
- } else
+ } else
s->comm = unescape(str);
} else
return 38;
--