From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:51296) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RTAIt-00059R-Q8 for qemu-devel@nongnu.org; Wed, 23 Nov 2011 05:43:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RTAIn-0005o3-T7 for qemu-devel@nongnu.org; Wed, 23 Nov 2011 05:43:47 -0500 Received: from mtagate7.uk.ibm.com ([194.196.100.167]:49920) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RTAIn-0005jL-Io for qemu-devel@nongnu.org; Wed, 23 Nov 2011 05:43:41 -0500 Received: from d06nrmr1707.portsmouth.uk.ibm.com (d06nrmr1707.portsmouth.uk.ibm.com [9.149.39.225]) by mtagate7.uk.ibm.com (8.13.1/8.13.1) with ESMTP id pANAhe16028004 for ; Wed, 23 Nov 2011 10:43:40 GMT Received: from d06av09.portsmouth.uk.ibm.com (d06av09.portsmouth.uk.ibm.com [9.149.37.250]) by d06nrmr1707.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id pANAhder2359402 for ; Wed, 23 Nov 2011 10:43:39 GMT Received: from d06av09.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av09.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id pANAhdaS004820 for ; Wed, 23 Nov 2011 03:43:39 -0700 From: Stefan Hajnoczi Date: Wed, 23 Nov 2011 10:42:30 +0000 Message-Id: <1322044952-15792-2-git-send-email-stefanha@linux.vnet.ibm.com> In-Reply-To: <1322044952-15792-1-git-send-email-stefanha@linux.vnet.ibm.com> References: <1322044952-15792-1-git-send-email-stefanha@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH 1/3] slirp: Clean up net_slirp_hostfwd_remove()'s use of get_str_sep() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Anthony Liguori , Markus Armbruster , Stefan Hajnoczi From: Markus Armbruster get_str_sep() can fail, but net_slirp_hostfwd_remove() doesn't check. Works, because it initializes buf[] to "", which get_str_sep() doesn't touch when it fails. Coverity doesn't like it, and neither do I. Change it to work exactly like slirp_hostfwd(). Acked-by: Jan Kiszka Signed-off-by: Markus Armbruster Signed-off-by: Stefan Hajnoczi --- net/slirp.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) diff --git a/net/slirp.c b/net/slirp.c index c6cda5d..6646ecb 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -305,7 +305,7 @@ void net_slirp_hostfwd_remove(Monitor *mon, const QDict *qdict) { struct in_addr host_addr = { .s_addr = INADDR_ANY }; int host_port; - char buf[256] = ""; + char buf[256]; const char *src_str, *p; SlirpState *s; int is_udp = 0; @@ -325,11 +325,10 @@ void net_slirp_hostfwd_remove(Monitor *mon, const QDict *qdict) return; } - if (!src_str || !src_str[0]) - goto fail_syntax; - p = src_str; - get_str_sep(buf, sizeof(buf), &p, ':'); + if (!p || get_str_sep(buf, sizeof(buf), &p, ':') < 0) { + goto fail_syntax; + } if (!strcmp(buf, "tcp") || buf[0] == '\0') { is_udp = 0; -- 1.7.7.1