summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2012-12-15 22:26:16 +0000
committerpjd <pjd@FreeBSD.org>2012-12-15 22:26:16 +0000
commite2cc9c78ee7d7f812d141a3a601ebc8e4472c66c (patch)
tree5fcceb110608c2a0adb5beeff9bd1c42663147b1
parent856bcc6178750def68b3cc4d68a64e26abdd10c8 (diff)
downloadFreeBSD-src-e2cc9c78ee7d7f812d141a3a601ebc8e4472c66c.zip
FreeBSD-src-e2cc9c78ee7d7f812d141a3a601ebc8e4472c66c.tar.gz
sbuf_trim() cannot be used on sbuf with drain function set.
This fixes panic when listing sysctls on INVARIANTS-enabled kernel while having wbwd loaded. This panic was not fatal, at worst one additional space was printed. Also sbuf_trim() makes some sense even if drain function is set. The drain function is called only when buffer is to be expanded. So we could still trim existing buffer before drain is called. In this case it worked just fine - the trailing space was correctly trimmed. Obtained from: WHEEL Systems MFC after: 1 week
-rw-r--r--sys/dev/wbwd/wbwd.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/dev/wbwd/wbwd.c b/sys/dev/wbwd/wbwd.c
index 266f87e..539d5bb 100644
--- a/sys/dev/wbwd/wbwd.c
+++ b/sys/dev/wbwd/wbwd.c
@@ -208,9 +208,8 @@ sysctl_wb_debug(SYSCTL_HANDLER_ARGS)
sbuf_printf(&sb, "LDN8 (GPIO2, Watchdog): ");
sbuf_printf(&sb, "CRF5 0x%02x ", sc->reg_1);
sbuf_printf(&sb, "CRF6 0x%02x ", sc->reg_timeout);
- sbuf_printf(&sb, "CRF7 0x%02x ", sc->reg_2);
+ sbuf_printf(&sb, "CRF7 0x%02x", sc->reg_2);
- sbuf_trim(&sb);
error = sbuf_finish(&sb);
sbuf_delete(&sb);
return (error);
OpenPOWER on IntegriCloud