diff options
author | Eric Paris <eparis@redhat.com> | 2009-08-26 14:56:48 -0400 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2009-08-27 11:01:03 +1000 |
commit | 53a7197aff20e341487fca8575275056fe1c63e5 (patch) | |
tree | db302fc811fb6debaa7015abd908c053a59d084f /virt | |
parent | 3edf2fb9d80a46d6c32ba12547a42419845b4b76 (diff) | |
download | lwn-53a7197aff20e341487fca8575275056fe1c63e5.tar.gz lwn-53a7197aff20e341487fca8575275056fe1c63e5.zip |
IMA: iint put in ima_counts_get and put
ima_counts_get() calls ima_iint_find_insert_get() which takes a reference
to the iint in question, but does not put that reference at the end of the
function. This can lead to a nasty memory leak. Easy enough to reproduce:
#include <sys/mman.h>
#include <stdio.h>
int main (void)
{
int i;
void *ptr;
for (i=0; i < 100000; i++) {
ptr = mmap(NULL, 4096, PROT_READ|PROT_WRITE,
MAP_SHARED|MAP_ANONYMOUS, -1, 0);
if (ptr == MAP_FAILED)
return 2;
munmap(ptr, 4096);
}
return 0;
}
Signed-off-by: Eric Paris <eparis@redhat.com>
Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions