From nobody Tue Nov 18 02:49:14 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1607949106; cv=none; d=zohomail.com; s=zohoarc; b=iY9emfJgHFd2xSrJ80E+TlHOuokyEeueitcW/S7yQKSnE5LXMuc8zG2J1YuIJ2R9XOYkhZCJt0sGcPw3Aqxwo58D7dmCgDllggLXQV3giKGV7Tn5HcRCGsgl7dRukuPF2piUTjx1BfS6Afw+ep4MKQor1mSUwAfwgrVX3VNw4TA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1607949106; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=Yx4IZZZiizLyepcfEg3FMxF3+ro3VM7Rbkx5HI7cxmE=; b=UhvHqr0zCDuxDRWH0GTsVx0va+ydrSWERHE8FQb22su9CpK/PP4QnMsSE6iyltJTEwOPe3lRbt54x9YEfo4p4etMQnItfTXLSBd9C1NV1GP7uu6ztnJgQFKYkV9TrzydkzhOIejDSI8yhUkhZYsj/yPbHVqQiFEf+37pjTy3PkA= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1607949106123770.4311670600094; Mon, 14 Dec 2020 04:31:46 -0800 (PST) Received: from localhost ([::1]:40604 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kon0y-00035I-Lt for importer@patchew.org; Mon, 14 Dec 2020 07:31:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:43572) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1komzZ-0002Or-2I; Mon, 14 Dec 2020 07:30:17 -0500 Received: from szxga05-in.huawei.com ([45.249.212.191]:2993) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1komzV-0000dn-4o; Mon, 14 Dec 2020 07:30:16 -0500 Received: from DGGEMS404-HUB.china.huawei.com (unknown [172.30.72.59]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4CvggQ4YPtzhtTn; Mon, 14 Dec 2020 20:29:22 +0800 (CST) Received: from huawei.com (10.175.124.27) by DGGEMS404-HUB.china.huawei.com (10.3.19.204) with Microsoft SMTP Server id 14.3.498.0; Mon, 14 Dec 2020 20:29:50 +0800 From: Alex Chen To: , Subject: [PATCH] virtiofsd: Remove useless code about send_notify_iov Date: Mon, 14 Dec 2020 12:16:15 +0000 Message-ID: <20201214121615.29967-1-alex.chen@huawei.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.175.124.27] X-CFilter-Loop: Reflected Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=45.249.212.191; envelope-from=alex.chen@huawei.com; helo=szxga05-in.huawei.com X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.chen@huawei.com, qemu-trivial@nongnu.org, qemu-devel@nongnu.org, zhang.zhanghailiang@huawei.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" The 'ch' will be NULL in the following stack: send_notify_iov()->fuse_send_msg()->virtio_send_msg(), and this may lead to NULL pointer dereferenced in virtio_send_msg(). But send_notify_iov() was never called, so remove the useless code about send_notify_iov() to fix this problem. Signed-off-by: Alex Chen Reviewed-by: Stefan Hajnoczi --- tools/virtiofsd/fuse_lowlevel.c | 98 --------------------------------- 1 file changed, 98 deletions(-) diff --git a/tools/virtiofsd/fuse_lowlevel.c b/tools/virtiofsd/fuse_lowleve= l.c index d4119e92ab..e94b71110b 100644 --- a/tools/virtiofsd/fuse_lowlevel.c +++ b/tools/virtiofsd/fuse_lowlevel.c @@ -2143,104 +2143,6 @@ static void do_destroy(fuse_req_t req, fuse_ino_t n= odeid, send_reply_ok(req, NULL, 0); } =20 -static int send_notify_iov(struct fuse_session *se, int notify_code, - struct iovec *iov, int count) -{ - struct fuse_out_header out =3D { - .error =3D notify_code, - }; - - if (!se->got_init) { - return -ENOTCONN; - } - - iov[0].iov_base =3D &out; - iov[0].iov_len =3D sizeof(struct fuse_out_header); - - return fuse_send_msg(se, NULL, iov, count); -} - -int fuse_lowlevel_notify_poll(struct fuse_pollhandle *ph) -{ - if (ph !=3D NULL) { - struct fuse_notify_poll_wakeup_out outarg =3D { - .kh =3D ph->kh, - }; - struct iovec iov[2]; - - iov[1].iov_base =3D &outarg; - iov[1].iov_len =3D sizeof(outarg); - - return send_notify_iov(ph->se, FUSE_NOTIFY_POLL, iov, 2); - } else { - return 0; - } -} - -int fuse_lowlevel_notify_inval_inode(struct fuse_session *se, fuse_ino_t i= no, - off_t off, off_t len) -{ - struct fuse_notify_inval_inode_out outarg =3D { - .ino =3D ino, - .off =3D off, - .len =3D len, - }; - struct iovec iov[2]; - - if (!se) { - return -EINVAL; - } - - iov[1].iov_base =3D &outarg; - iov[1].iov_len =3D sizeof(outarg); - - return send_notify_iov(se, FUSE_NOTIFY_INVAL_INODE, iov, 2); -} - -int fuse_lowlevel_notify_inval_entry(struct fuse_session *se, fuse_ino_t p= arent, - const char *name, size_t namelen) -{ - struct fuse_notify_inval_entry_out outarg =3D { - .parent =3D parent, - .namelen =3D namelen, - }; - struct iovec iov[3]; - - if (!se) { - return -EINVAL; - } - - iov[1].iov_base =3D &outarg; - iov[1].iov_len =3D sizeof(outarg); - iov[2].iov_base =3D (void *)name; - iov[2].iov_len =3D namelen + 1; - - return send_notify_iov(se, FUSE_NOTIFY_INVAL_ENTRY, iov, 3); -} - -int fuse_lowlevel_notify_delete(struct fuse_session *se, fuse_ino_t parent, - fuse_ino_t child, const char *name, - size_t namelen) -{ - struct fuse_notify_delete_out outarg =3D { - .parent =3D parent, - .child =3D child, - .namelen =3D namelen, - }; - struct iovec iov[3]; - - if (!se) { - return -EINVAL; - } - - iov[1].iov_base =3D &outarg; - iov[1].iov_len =3D sizeof(outarg); - iov[2].iov_base =3D (void *)name; - iov[2].iov_len =3D namelen + 1; - - return send_notify_iov(se, FUSE_NOTIFY_DELETE, iov, 3); -} - int fuse_lowlevel_notify_store(struct fuse_session *se, fuse_ino_t ino, off_t offset, struct fuse_bufvec *bufv) { --=20 2.19.1