From nobody Tue Feb 10 14:32:12 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1508186694637763.4951472928332; Mon, 16 Oct 2017 13:44:54 -0700 (PDT) Received: from localhost ([::1]:35171 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4CFi-0007ze-Eu for importer@patchew.org; Mon, 16 Oct 2017 16:44:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51923) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4CDw-0006fC-7i for qemu-devel@nongnu.org; Mon, 16 Oct 2017 16:42:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e4CDt-0006Q2-3u for qemu-devel@nongnu.org; Mon, 16 Oct 2017 16:42:56 -0400 Received: from isrv.corpit.ru ([86.62.121.231]:34615) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e4CDs-0006Pe-So; Mon, 16 Oct 2017 16:42:53 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 3004540D2D; Mon, 16 Oct 2017 23:42:52 +0300 (MSK) Received: from tls.msk.ru (mjt.vpn.tls.msk.ru [192.168.177.99]) by tsrv.corpit.ru (Postfix) with SMTP id 7B3DCC39; Mon, 16 Oct 2017 23:33:44 +0300 (MSK) Received: (nullmailer pid 12336 invoked by uid 1000); Mon, 16 Oct 2017 20:33:42 -0000 From: Michael Tokarev To: qemu-devel@nongnu.org Date: Mon, 16 Oct 2017 23:33:40 +0300 Message-Id: X-Mailer: git-send-email 2.11.0 In-Reply-To: References: In-Reply-To: References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 86.62.121.231 Subject: [Qemu-devel] [PULL 13/14] filter-mirror: segfault when specifying non existent device X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eduardo Otubo , qemu-trivial@nongnu.org, Michael Tokarev Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Eduardo Otubo When using filter-mirror like the example below where the interface 'ndev0' does not exist on the host, QEMU crashes into segmentation fault. $ qemu-system-x86_64 -S -machine pc -netdev user,id=3Dndev0 -object filter= -mirror,id=3Dtest-object,netdev=3Dndev0 This happens because the function filter_mirror_setup() does not check if the device actually exists and still keep on processing calling qemu_chr_find(). This patch fixes this issue. Signed-off-by: Eduardo Otubo Signed-off-by: Michael Tokarev --- net/filter-mirror.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/filter-mirror.c b/net/filter-mirror.c index 90e2c92337..ce0dc23c2a 100644 --- a/net/filter-mirror.c +++ b/net/filter-mirror.c @@ -213,6 +213,12 @@ static void filter_mirror_setup(NetFilterState *nf, Er= ror **errp) MirrorState *s =3D FILTER_MIRROR(nf); Chardev *chr; =20 + if (s->outdev =3D=3D NULL) { + error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND, "filter-mirror param= eter"\ + " 'outdev' cannot be empty"); + return; + } + chr =3D qemu_chr_find(s->outdev); if (chr =3D=3D NULL) { error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND, --=20 2.11.0