From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kg0Eu-0002Zi-DL for qemu-devel@nongnu.org; Wed, 17 Sep 2008 12:50:52 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kg0Es-0002Yb-51 for qemu-devel@nongnu.org; Wed, 17 Sep 2008 12:50:51 -0400 Received: from [199.232.76.173] (port=59703 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kg0Er-0002YT-Sb for qemu-devel@nongnu.org; Wed, 17 Sep 2008 12:50:49 -0400 Received: from mail.gmx.net ([213.165.64.20]:38769) by monty-python.gnu.org with smtp (Exim 4.60) (envelope-from ) id 1Kg0Er-00088I-3q for qemu-devel@nongnu.org; Wed, 17 Sep 2008 12:50:49 -0400 Message-ID: <48D13565.2030909@gmx.at> Date: Wed, 17 Sep 2008 18:50:45 +0200 From: Andreas Winkelbauer MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050902020202040600050200" Subject: [Qemu-devel] [PATCH] change auto filter output format of "info usbhost" (v2) Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: aliguori@us.ibm.com Cc: qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------050902020202040600050200 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit This patch changes the output format of the monitor command "info usbhost" for usb auto filters in usb_host_info(). The VID and PID are now printed as 4 digit hexadecimal numbers with leading zeros (which is much more usual compared to the current output format which does not print leading zeros). In addition to the version 1 of this patch, this version introduces more changes in the static functions dec2str() and hex2str() (which are only used by usb_host_info()) to ensure that there won't be any buffer overflows. Signed-off-by: Andreas Winkelbauer --- bye, Andi --------------050902020202040600050200 Content-Type: text/x-patch; name="qemu-autofilter-monitor-v2.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="qemu-autofilter-monitor-v2.patch" diff -uNrp trunk.orig/usb-linux.c trunk/usb-linux.c --- trunk.orig/usb-linux.c 2008-09-17 02:11:53.000000000 +0200 +++ trunk/usb-linux.c 2008-09-17 14:18:10.000000000 +0200 @@ -1449,20 +1449,20 @@ static int usb_host_info_device(void *op return 0; } -static void dec2str(int val, char *str) +static void dec2str(int val, char *str, size_t len) { if (val == -1) - strcpy(str, "*"); + strncpy(str, "*", len); else - sprintf(str, "%d", val); + snprintf(str, len, "%d", val); } -static void hex2str(int val, char *str) +static void hex2str(int val, char *str, size_t len) { if (val == -1) - strcpy(str, "*"); + strncpy(str, "*", len); else - sprintf(str, "%x", val); + snprintf(str, len, "%04x", val); } void usb_host_info(void) @@ -1474,12 +1474,12 @@ void usb_host_info(void) if (usb_auto_filter) term_printf(" Auto filters:\n"); for (f = usb_auto_filter; f; f = f->next) { - char bus[10], addr[10], vid[10], pid[10]; - dec2str(f->bus_num, bus); - dec2str(f->addr, addr); - hex2str(f->vendor_id, vid); - hex2str(f->product_id, pid); - term_printf(" Device %s.%s ID %s:%s\n", bus, addr, vid, pid); + char bus[10], addr[10], vid[5], pid[5]; + dec2str(f->bus_num, bus, 10); + dec2str(f->addr, addr, 10); + hex2str(f->vendor_id, vid, 5); + hex2str(f->product_id, pid, 5); + term_printf(" Device %s.%s ID %s:%s\n", bus, addr, vid, pid); } } --------------050902020202040600050200--