Page MenuHomeFreeBSD

D36741.id111089.diff
No OneTemporary

D36741.id111089.diff

Index: sys/kern/kern_sysctl.c
===================================================================
--- sys/kern/kern_sysctl.c
+++ sys/kern/kern_sysctl.c
@@ -356,29 +356,22 @@
SYSCTL_ASSERT_LOCKED();
indx = 0;
- while (indx < CTL_MAXNAME && indx >= 0) {
- if (nodes[indx] == NULL && indx == 0)
- nodes[indx] = RB_MIN(sysctl_oid_list,
- &sysctl__children);
- else if (nodes[indx] == NULL)
- nodes[indx] = RB_MIN(sysctl_oid_list,
- &nodes[indx - 1]->oid_children);
- else
- nodes[indx] = RB_NEXT(sysctl_oid_list,
- &nodes[indx - 1]->oid_children, nodes[indx]);
-
+ nodes[indx] = RB_MIN(sysctl_oid_list, &sysctl__children);
+ for (;;) {
if (nodes[indx] == needle)
return (indx + 1);
if (nodes[indx] == NULL) {
- indx--;
- continue;
- }
-
- if ((nodes[indx]->oid_kind & CTLTYPE) == CTLTYPE_NODE) {
- indx++;
+ if (indx-- == 0)
+ break;
+ } else if ((nodes[indx]->oid_kind & CTLTYPE) == CTLTYPE_NODE) {
+ if (++indx == CTL_MAXNAME)
+ break;
+ nodes[indx] = RB_MIN(sysctl_oid_list,
+ &nodes[indx - 1]->oid_children);
continue;
}
+ nodes[indx] = RB_NEXT(sysctl_oid_list, NULL, nodes[indx]);
}
return (-1);
}

File Metadata

Mime Type
text/plain
Expires
Sat, Feb 22, 7:09 PM (5 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16777635
Default Alt Text
D36741.id111089.diff (1 KB)

Event Timeline