Page MenuHomeFreeBSD

D34171.diff
No OneTemporary

D34171.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
@@ -41,8 +41,17 @@
const void *newp, size_t newlen)
{
size_t len;
+ int oid[2];
- len = strlen(name);
- return (__sysctlbyname(name, len, oldp, oldlenp, newp,
- newlen));
+ if (__predict_true(strncmp(name, "user.", 5) != 0)) {
+ len = strlen(name);
+ return (__sysctlbyname(name, len, oldp, oldlenp, newp,
+ newlen));
+ } else {
+ len = nitems(oid);
+ if (sysctlnametomib(name, oid, &len) == -1)
+ return (-1);
+ return (sysctl(oid, (u_int)len, oldp, oldlenp, newp,
+ newlen));
+ }
}

File Metadata

Mime Type
text/plain
Expires
Tue, Oct 28, 7:18 AM (15 h, 31 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
24345561
Default Alt Text
D34171.diff (653 B)

Event Timeline