aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/usb/usb_request.c
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2010-10-04 22:45:17 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2010-10-04 22:45:17 +0000
commitb64cf89faf281eb04fbf15a1d331acaa08838563 (patch)
treed7ad5afb7d870e62e3b00a95fb5b275cc3f5301e /sys/dev/usb/usb_request.c
parent8f9750b7fdf0e5bc23218c45827f56f9b2b4aa4a (diff)
Notes
Diffstat (limited to 'sys/dev/usb/usb_request.c')
-rw-r--r--sys/dev/usb/usb_request.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/sys/dev/usb/usb_request.c b/sys/dev/usb/usb_request.c
index a3c685d31232..9f1672592394 100644
--- a/sys/dev/usb/usb_request.c
+++ b/sys/dev/usb/usb_request.c
@@ -1018,14 +1018,21 @@ usbd_req_get_string_any(struct usb_device *udev, struct mtx *mtx, char *buf,
}
/*
- * Filter by default - we don't allow greater and less than
- * signs because they might confuse the dmesg printouts!
+ * Filter by default - We only allow alphanumerical
+ * and a few more to avoid any problems with scripts
+ * and daemons.
*/
- if ((*s == '<') || (*s == '>') || (!isprint(*s))) {
- /* silently skip bad character */
- continue;
+ if (isalpha(*s) ||
+ isdigit(*s) ||
+ *s == '-' ||
+ *s == '+' ||
+ *s == ' ' ||
+ *s == '.' ||
+ *s == ',') {
+ /* allowed */
+ s++;
}
- s++;
+ /* silently skip bad character */
}
*s = 0; /* zero terminate resulting string */
return (USB_ERR_NORMAL_COMPLETION);