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
Sun, May 24, 2:43 PM (4 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33474857
Default Alt Text
D34171.diff (653 B)

Event Timeline