summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorguenther <guenther@openbsd.org>2012-01-21 16:30:31 +0000
committerguenther <guenther@openbsd.org>2012-01-21 16:30:31 +0000
commitab8243ceaf4ce0674dada9184e42e6ea9b15a1a2 (patch)
treee8f5b1981ebded8c3a7609a9c5296cdd44a2381f
parentDo not wait for DKF_OPENED to be set if we never actually created a (diff)
downloadwireguard-openbsd-ab8243ceaf4ce0674dada9184e42e6ea9b15a1a2.tar.xz
wireguard-openbsd-ab8243ceaf4ce0674dada9184e42e6ea9b15a1a2.zip
Make the KERN_FILE2 sysctl() report ENOMEM as documented in sysctl(3).
ok millert@
-rw-r--r--sys/kern/kern_sysctl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c
index 9095f134113..e15a30f73c7 100644
--- a/sys/kern/kern_sysctl.c
+++ b/sys/kern/kern_sysctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_sysctl.c,v 1.211 2012/01/07 05:38:12 guenther Exp $ */
+/* $OpenBSD: kern_sysctl.c,v 1.212 2012/01/21 16:30:31 guenther Exp $ */
/* $NetBSD: kern_sysctl.c,v 1.17 1996/05/20 17:49:05 mrg Exp $ */
/*-
@@ -1345,6 +1345,8 @@ sysctl_file2(int *name, u_int namelen, char *where, size_t *sizep,
if (!error) {
if (where == NULL)
needed += KERN_FILESLOP * elem_size;
+ else if (*sizep < needed)
+ error = ENOMEM;
*sizep = needed;
}