Page MenuHomeFreeBSD

D34171.id102383.diff
No OneTemporary

D34171.id102383.diff

diff --git a/lib/libc/gen/sysctlbyname.c b/lib/libc/gen/sysctlbyname.c
--- a/lib/libc/gen/sysctlbyname.c
+++ b/lib/libc/gen/sysctlbyname.c
@@ -36,12 +36,28 @@
extern int __sysctlbyname(const char *name, size_t namelen, void *oldp,
size_t *oldlenp, const void *newp, size_t newlen);
+static int
+sysctlbyname_user(const char *name, void *oldp, size_t *oldlenp,
+ const void *newp, size_t newlen)
+{
+ int real_oid[CTL_MAXNAME+2];
+ size_t oidlen;
+
+ oidlen = sizeof(real_oid) / sizeof(int);
+ if (sysctlnametomib(name, real_oid, &oidlen) < 0)
+ return (-1);
+ return (sysctl(real_oid, oidlen, oldp, oldlenp, newp, newlen));
+}
+
int
sysctlbyname(const char *name, void *oldp, size_t *oldlenp,
const void *newp, size_t newlen)
{
size_t len;
+ if (strncmp(name, "user.", 5) == 0)
+ return (sysctlbyname_user(name, oldp, oldlenp, newp, newlen));
+
len = strlen(name);
return (__sysctlbyname(name, len, oldp, oldlenp, newp,
newlen));

File Metadata

Mime Type
text/plain
Expires
Sat, May 23, 6:47 PM (6 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33451987
Default Alt Text
D34171.id102383.diff (966 B)

Event Timeline