aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/acpi_support
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2014-10-28 12:00:39 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2014-10-28 12:00:39 +0000
commit0e1152fcc2fe48dea2583ac89d30ba77b4ab78cc (patch)
tree63f2365a6dbce30caad91ca3b5ad545a2e4beb51 /sys/dev/acpi_support
parentfb7830888d63404404f597b4680dd8150fd5ae0c (diff)
Notes
Diffstat (limited to 'sys/dev/acpi_support')
-rw-r--r--sys/dev/acpi_support/acpi_ibm.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/dev/acpi_support/acpi_ibm.c b/sys/dev/acpi_support/acpi_ibm.c
index 3f53c59f545a..52cee096b7ed 100644
--- a/sys/dev/acpi_support/acpi_ibm.c
+++ b/sys/dev/acpi_support/acpi_ibm.c
@@ -899,6 +899,7 @@ acpi_ibm_handlerevents_sysctl(SYSCTL_HANDLER_ARGS)
char *cp, *ep;
int l, val;
unsigned int handler_events;
+ char temp[128];
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
@@ -920,17 +921,18 @@ acpi_ibm_handlerevents_sysctl(SYSCTL_HANDLER_ARGS)
sbuf_trim(&sb);
sbuf_finish(&sb);
-
- /* Copy out the old values to the user. */
- error = SYSCTL_OUT(req, sbuf_data(&sb), sbuf_len(&sb));
+ strlcpy(temp, sbuf_data(&sb), sizeof(temp));
sbuf_delete(&sb);
+ error = sysctl_handle_string(oidp, temp, sizeof(temp), req);
+
+ /* Check for error or no change */
if (error != 0 || req->newptr == NULL)
goto out;
/* If the user is setting a string, parse it. */
handler_events = 0;
- cp = (char *)req->newptr;
+ cp = temp;
while (*cp) {
if (isspace(*cp)) {
cp++;