diff options
author | rwatson <rwatson@FreeBSD.org> | 2003-02-22 17:58:06 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2003-02-22 17:58:06 +0000 |
commit | 23839916879abcc70dd879d7f17ed679c1c96d31 (patch) | |
tree | c228c71c5889f5c96569d858b5da4b9c0f0d2414 /sys/kern/kern_sysctl.c | |
parent | c0bff2da93b76aa93a9c4d085301e5179a443f43 (diff) | |
download | FreeBSD-src-23839916879abcc70dd879d7f17ed679c1c96d31.zip FreeBSD-src-23839916879abcc70dd879d7f17ed679c1c96d31.tar.gz |
Don't panic when enumerating SYSCTL_NODE() nodes without any children
nodes.
Submitted by: green, Hiten Pandya <hiten@unixdaemons.com>
Diffstat (limited to 'sys/kern/kern_sysctl.c')
-rw-r--r-- | sys/kern/kern_sysctl.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c index 08d1f80..05d6185 100644 --- a/sys/kern/kern_sysctl.c +++ b/sys/kern/kern_sysctl.c @@ -557,7 +557,7 @@ sysctl_sysctl_next_ls(struct sysctl_oid_list *lsp, int *name, u_int namelen, if (!sysctl_sysctl_next_ls(lsp, 0, 0, next+1, len, level+1, oidpp)) return 0; - goto next; + goto emptynode; } if (oidp->oid_number < *name) @@ -586,6 +586,7 @@ sysctl_sysctl_next_ls(struct sysctl_oid_list *lsp, int *name, u_int namelen, return (0); next: namelen = 1; + emptynode: *len = level; } return 1; |