summaryrefslogtreecommitdiffstats
path: root/sys/kern/exec_elf.c
diff options
context:
space:
mode:
authormikeb <mikeb@openbsd.org>2010-09-17 14:03:09 +0000
committermikeb <mikeb@openbsd.org>2010-09-17 14:03:09 +0000
commitdc5410f197fa2c1b78ce35843ed2424fd10937e3 (patch)
tree4907dcaf6b184252e42f8c16aa9096f1e43b58a2 /sys/kern/exec_elf.c
parentdon't try to get the current stream postion when the device is stopped, (diff)
downloadwireguard-openbsd-dc5410f197fa2c1b78ce35843ed2424fd10937e3.tar.xz
wireguard-openbsd-dc5410f197fa2c1b78ce35843ed2424fd10937e3.zip
don't forget to free program header sections when writing
core files. fixes a local DoS that can be carried out by an unprivileged user. ok kettenis
Diffstat (limited to 'sys/kern/exec_elf.c')
-rw-r--r--sys/kern/exec_elf.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/exec_elf.c b/sys/kern/exec_elf.c
index 10993c60152..45c82fab991 100644
--- a/sys/kern/exec_elf.c
+++ b/sys/kern/exec_elf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: exec_elf.c,v 1.76 2010/07/26 01:56:27 guenther Exp $ */
+/* $OpenBSD: exec_elf.c,v 1.77 2010/09/17 14:03:09 mikeb Exp $ */
/*
* Copyright (c) 1996 Per Fogelstrom
@@ -1078,6 +1078,8 @@ ELFNAMEEND(coredump)(struct proc *p, void *cookie)
}
out:
+ if (psections)
+ free(psections, M_TEMP);
return (error);
#endif
}