summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/sysctl.c
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>1999-01-06 18:11:53 +0000
committerdes <des@FreeBSD.org>1999-01-06 18:11:53 +0000
commit76b479177d68eca7d7121427665c08ca7ffaf3b7 (patch)
treeb2891f8ddff12ca4475c2d8de6f517e644f4685b /lib/libc/gen/sysctl.c
parent7bcec4ef4cc90cac63c72a5b732730c0f851c23c (diff)
downloadFreeBSD-src-76b479177d68eca7d7121427665c08ca7ffaf3b7.zip
FreeBSD-src-76b479177d68eca7d7121427665c08ca7ffaf3b7.tar.gz
Make the implementation and documentation agree. Specifically:
- document that sysctl() and sysctlbyname() return 0 on success - if the provided buffer is too small, set errno to ENOMEM and return -1 instead of returning ENOMEM.
Diffstat (limited to 'lib/libc/gen/sysctl.c')
-rw-r--r--lib/libc/gen/sysctl.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/libc/gen/sysctl.c b/lib/libc/gen/sysctl.c
index cb7448a..19709d5 100644
--- a/lib/libc/gen/sysctl.c
+++ b/lib/libc/gen/sysctl.c
@@ -66,16 +66,20 @@ sysctl(name, namelen, oldp, oldlenp, newp, newlen)
switch (name[1]) {
case USER_CS_PATH:
- if (oldp && *oldlenp < sizeof(_PATH_STDPATH))
- return (ENOMEM);
+ if (oldp && *oldlenp < sizeof(_PATH_STDPATH)) {
+ errno = ENOMEM;
+ return -1;
+ }
*oldlenp = sizeof(_PATH_STDPATH);
if (oldp != NULL)
memmove(oldp, _PATH_STDPATH, sizeof(_PATH_STDPATH));
return (0);
}
- if (oldp && *oldlenp < sizeof(int))
- return (ENOMEM);
+ if (oldp && *oldlenp < sizeof(int)) {
+ errno = ENOMEM;
+ return (-1);
+ }
*oldlenp = sizeof(int);
if (oldp == NULL)
return (0);
OpenPOWER on IntegriCloud