From f23caa49f7f0a42418ba36636eb77d055cff54d6 Mon Sep 17 00:00:00 2001 From: Steve Grubb Date: Mar 14 2008 15:15:58 +0000 Subject: - Better fix for memleak in audit event dispatcher --- diff --git a/audit-1.6.8-audispd-memleak.patch b/audit-1.6.8-audispd-memleak.patch index 347ae8f..7a565f5 100644 --- a/audit-1.6.8-audispd-memleak.patch +++ b/audit-1.6.8-audispd-memleak.patch @@ -1,6 +1,50 @@ -diff -urp audit-1.6.8.orig/audisp/queue.c audit-1.6.8/audisp/queue.c ---- audit-1.6.8.orig/audisp/queue.c 2008-02-14 11:52:34.000000000 -0500 -+++ audit-1.6.8/audisp/queue.c 2008-03-02 08:52:50.000000000 -0500 +diff -urp audit-1.6.9/audisp/audispd.c audit-1.6.10/audisp/audispd.c +--- audit-1.6.9/audisp/audispd.c 2008-03-06 12:50:06.000000000 -0500 ++++ audit-1.6.10/audisp/audispd.c 2008-03-13 22:11:53.000000000 -0400 +@@ -708,6 +711,13 @@ static void process_inbound_event(int fd + rc = readv(fd, &vec, 1); + } while (rc < 0 && errno == EINTR); + ++ if (rc <= 0) { ++ if (rc == 0) ++ stop = 1; // End of File ++ free(e); ++ return; ++ } ++ + if (rc > 0) { + /* Sanity check */ + if (e->hdr.ver != AUDISP_PROTOCOL_VER || +@@ -728,6 +738,11 @@ static void process_inbound_event(int fd + + if (rc > 0) + enqueue(e, &daemon_config); ++ else { ++ if (rc == 0) ++ stop = 1; // End of File ++ free(e); ++ } + } + } + +diff -urp audit-1.6.8/audisp/audispd-builtins.c audit-1.6.9/audisp/audispd-builtins.c +--- audit-1.6.8/audisp/audispd-builtins.c 2008-02-07 13:37:16.000000000 -0500 ++++ audit-1.6.9/audisp/audispd-builtins.c 2008-02-24 11:48:46.000000000 -0500 +@@ -226,6 +226,11 @@ void send_af_unix_binary(event_t *e) + do { + rc = writev(conn, vec, 2); + } while (rc < 0 && errno == EINTR); ++ if (rc < 0 && errno == EPIPE) { ++ close(conn); ++ conn = -1; ++ add_event(sock, af_unix_accept); ++ } + } + } + +diff -urp audit-1.6.8/audisp/queue.c audit-1.6.9/audisp/queue.c +--- audit-1.6.8/audisp/queue.c 2007-12-28 16:32:45.000000000 -0500 ++++ audit-1.6.9/audisp/queue.c 2008-03-02 08:51:05.000000000 -0500 @@ -117,13 +117,16 @@ void enqueue(event_t *e, struct daemon_c { unsigned int n, retry_cnt = 0; diff --git a/audit.spec b/audit.spec index 502c138..c36736a 100644 --- a/audit.spec +++ b/audit.spec @@ -1,12 +1,12 @@ %define sca_version 0.4.5 -%define sca_release 5 +%define sca_release 6 %define selinux_variants mls strict targeted %define selinux_policyver 3.0.8 Summary: User space tools for 2.6 kernel auditing Name: audit Version: 1.6.8 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ Group: System Environment/Daemons URL: http://people.redhat.com/sgrubb/audit/ @@ -308,6 +308,9 @@ fi %config(noreplace) %{_sysconfdir}/security/console.apps/system-config-audit-server %changelog +* Fri Mar 14 2008 Steve Grubb 1.6.8-3 +- Better fix for memleak in audit event dispatcher + * Sun Mar 02 2008 Steve Grubb 1.6.8-2 - Fix memleak in audit event dispatcher