From patchwork Wed Nov 16 14:45:59 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Armbruster X-Patchwork-Id: 125994 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 3D09DB6F9C for ; Thu, 17 Nov 2011 01:46:23 +1100 (EST) Received: from localhost ([::1]:32964 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RQgkj-000365-Nw for incoming@patchwork.ozlabs.org; Wed, 16 Nov 2011 09:46:17 -0500 Received: from eggs.gnu.org ([140.186.70.92]:50519) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RQgkZ-00033G-AT for qemu-devel@nongnu.org; Wed, 16 Nov 2011 09:46:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RQgkT-0002wU-HE for qemu-devel@nongnu.org; Wed, 16 Nov 2011 09:46:07 -0500 Received: from oxygen.pond.sub.org ([78.46.104.156]:35865) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RQgkT-0002wI-7n for qemu-devel@nongnu.org; Wed, 16 Nov 2011 09:46:01 -0500 Received: from blackfin.pond.sub.org (p5B32D5E5.dip.t-dialin.net [91.50.213.229]) by oxygen.pond.sub.org (Postfix) with ESMTPA id 47D84A246E; Wed, 16 Nov 2011 15:45:59 +0100 (CET) Received: by blackfin.pond.sub.org (Postfix, from userid 500) id 622E16006E; Wed, 16 Nov 2011 15:45:59 +0100 (CET) From: Markus Armbruster To: qemu-devel@nongnu.org Date: Wed, 16 Nov 2011 15:45:59 +0100 Message-Id: <1321454759-19508-1-git-send-email-armbru@redhat.com> X-Mailer: git-send-email 1.7.6.4 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 78.46.104.156 Cc: jan.kiszka@siemens.com Subject: [Qemu-devel] [PATCH] slirp: Clean up net_slirp_hostfwd_remove()'s use of get_str_sep() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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(). Signed-off-by: Markus Armbruster Acked-by: Jan Kiszka --- 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;