diff options
author | ian <ian@FreeBSD.org> | 2015-03-14 18:42:30 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2015-03-14 18:42:30 +0000 |
commit | 56e931511b280ca16d68dbfdf5cd4dc16cb000cb (patch) | |
tree | 3f7b428764791340d3cb9adc677b63af47af4103 /sys/kern/sched_ule.c | |
parent | 200d20ade218c3fcf14551f82f1d20dfaaa7525c (diff) | |
download | FreeBSD-src-56e931511b280ca16d68dbfdf5cd4dc16cb000cb.zip FreeBSD-src-56e931511b280ca16d68dbfdf5cd4dc16cb000cb.tar.gz |
Use sbuf_new_for_sysctl() instead of plain sbuf_new() to ensure sysctl
string returned to userland is nulterminated.
PR: 195668
Diffstat (limited to 'sys/kern/sched_ule.c')
-rw-r--r-- | sys/kern/sched_ule.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index d394d9f..17371e7 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -2830,7 +2830,7 @@ sysctl_kern_sched_topology_spec(SYSCTL_HANDLER_ARGS) KASSERT(cpu_top != NULL, ("cpu_top isn't initialized")); - topo = sbuf_new(NULL, NULL, 500, SBUF_AUTOEXTEND); + topo = sbuf_new_for_sysctl(NULL, NULL, 512, req); if (topo == NULL) return (ENOMEM); @@ -2839,8 +2839,7 @@ sysctl_kern_sched_topology_spec(SYSCTL_HANDLER_ARGS) sbuf_printf(topo, "</groups>\n"); if (err == 0) { - sbuf_finish(topo); - err = SYSCTL_OUT(req, sbuf_data(topo), sbuf_len(topo)); + err = sbuf_finish(topo); } sbuf_delete(topo); return (err); |