Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp304022pxf; Wed, 24 Mar 2021 05:40:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxvHN98V0PA0QK5SeF7XnIfZEBbnmVI3PWv2F8S47d7bGs70gWQypISROqd//OxQiJEV1lN X-Received: by 2002:a17:906:edca:: with SMTP id sb10mr3356856ejb.398.1616589649776; Wed, 24 Mar 2021 05:40:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616589649; cv=none; d=google.com; s=arc-20160816; b=TBAulj2t8YF3peDwni6n4qQF5L1ReB7puPttahCGIoInSmIaj8gl7jyBaFHIAcNtJ6 uAp17b2QXalhYxHPKQVY2ghtFvPrWoSRMEyucORuSnQY07aM1I4WYr9CL08WDnW3JvbZ pLSDP5TcV/AbNd5YH1YyDphck39XUmJkkr45bbLA7VvC0A8bg4iEQ+e1Y2+PyN+fTrSc 2oLyAUUm3xUtUZgvzgSN/2CeUp5/XR3q3M1PSz8mZoA/8qYIVLdmSxORCzDfddUt5Nc5 gbwmo0SBPqzssnhrTCs1yplCr/HmoiuOdv5jHXUi3DChLM4oSrnliA5i62O3tD3fIWOd lSHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=nCPOznDDPFRtYaZVMIiIQ9EXqDH+g8Wc0ygTJb4FnyE=; b=ZYjX4/8SwoIFZZCF5EvPQjbNrF+iegnSz+xP4FEgCGaEZRsh4mGRH5d1pJXi7rDduu MBTVnTlWYpV1zqSzO5vBlQsyiP5MJD4gelzrLAfunQJNyx+Dsh7qjHCY8FJX5OOgLz6+ oQrFmbF4cgL5VuE2kRRygBxsnPLQNGpMYvZmQITjVY/KyFASznshKC9sCaj5WxH0MdQ2 E1rRkxnJIDK8q95uoeeOQ306KVbRZYVFDEG5wEwZZXXKwfqP9Zvau+h00cMShMXS31ml aZeVdR1GbXfZef5bXSWzkcqKeMU6VxMY2sniorgavw11xp9SiXkp3yA56xeZec5j4qXy XXAQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=vivo.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r21si1622125edw.605.2021.03.24.05.40.27; Wed, 24 Mar 2021 05:40:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=vivo.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232421AbhCXMjb (ORCPT + 99 others); Wed, 24 Mar 2021 08:39:31 -0400 Received: from mail-m17635.qiye.163.com ([59.111.176.35]:39034 "EHLO mail-m17635.qiye.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232501AbhCXMjH (ORCPT ); Wed, 24 Mar 2021 08:39:07 -0400 Received: from ubuntu.localdomain (unknown [36.152.145.182]) by mail-m17635.qiye.163.com (Hmail) with ESMTPA id ECD2D4002DC; Wed, 24 Mar 2021 20:39:03 +0800 (CST) From: zhouchuangao To: Vivek Goyal , Stefan Hajnoczi , Miklos Szeredi , virtualization@lists.linux-foundation.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: zhouchuangao Subject: [PATCH] fs/fuse/virtio_fs: Fix a potential memory allocation failure Date: Wed, 24 Mar 2021 05:38:43 -0700 Message-Id: <1616589523-32024-1-git-send-email-zhouchuangao@vivo.com> X-Mailer: git-send-email 2.7.4 X-HM-Spam-Status: e1kfGhgUHx5ZQUtXWQgYFAkeWUFZS1VLWVdZKFlBSE83V1ktWUFJV1kPCR oVCBIfWUFZSk1LHU8YShhPSx9LVkpNSk1OQ0JOT05JSk9VEwETFhoSFyQUDg9ZV1kWGg8SFR0UWU FZT0tIVUpKS0hKTFVLWQY+ X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6MRQ6Hxw6Tj8PQz8*LwMuVjgx FTwaCT1VSlVKTUpNTkNCTk9OTkNKVTMWGhIXVQETFA4YEw4aFRwaFDsNEg0UVRgUFkVZV1kSC1lB WUhNVUpOSVVKT05VSkNJWVdZCAFZQUlLTU03Bg++ X-HM-Tid: 0a78643edeb0d991kuwsecd2d4002dc Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Allocate memory for struct fuse_conn may fail, we should not jump to out_err to kfree(fc). Signed-off-by: zhouchuangao --- fs/fuse/virtio_fs.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c index 4ee6f73..1f333c6 100644 --- a/fs/fuse/virtio_fs.c +++ b/fs/fuse/virtio_fs.c @@ -1430,11 +1430,11 @@ static int virtio_fs_get_tree(struct fs_context *fsc) err = -ENOMEM; fc = kzalloc(sizeof(struct fuse_conn), GFP_KERNEL); if (!fc) - goto out_err; + goto out_err_fc; fm = kzalloc(sizeof(struct fuse_mount), GFP_KERNEL); if (!fm) - goto out_err; + goto out_err_fm; fuse_conn_init(fc, fm, get_user_ns(current_user_ns()), &virtio_fs_fiq_ops, fs); @@ -1468,8 +1468,9 @@ static int virtio_fs_get_tree(struct fs_context *fsc) fsc->root = dget(sb->s_root); return 0; -out_err: +out_err_fm: kfree(fc); +out_err_fc: mutex_lock(&virtio_fs_mutex); virtio_fs_put(fs); mutex_unlock(&virtio_fs_mutex); -- 2.7.4