diff -urp audit-1.7/src/auditd.c audit-1.7.1/src/auditd.c --- audit-1.7/src/auditd.c 2008-01-01 09:55:36.000000000 -0500 +++ audit-1.7.1/src/auditd.c 2008-04-04 21:19:35.000000000 -0400 @@ -150,7 +150,8 @@ static void distribute_event(struct audi enqueue_event(rep); if (yield) pthread_yield(); /* Let other thread try to log it. */ - } + } else + free(rep); // This function takes custody of the memory // FIXME: This is commented out since it fails to work. The // problem is that the logger thread free's the buffer. Probably