Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp4276858rwr; Mon, 8 May 2023 05:42:32 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ50MDf41bsNa3ngquwXCE3NNh7crxMV8YgxnYqV85gIve/4XKEeaLlNLFL5PNQHYrsgBCfK X-Received: by 2002:a05:6a21:3291:b0:100:5082:612e with SMTP id yt17-20020a056a21329100b001005082612emr4655493pzb.17.1683549752675; Mon, 08 May 2023 05:42:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683549752; cv=none; d=google.com; s=arc-20160816; b=Br4M+4/Ot9vXteRO6UIFzoQpsHqMNJezLqwI3lhUtx0DjToekh/0UNgb+5058Z4FA1 q99y9wa3hsp0tVWq4Q5Y/CgYuHvoKCA79DyGNeMpNUQ2nUshiXFES5Q09B0e+O8Zuqfa vZhes8YsBk3YMJsm3DOYMjQ7hvU3+obZ0QNKUUV5P5wkTiFGTNIT9Dd0MuLh4tYs+ImO tqdChZ7Prr3Lzxp229GGF6nZiZw42TqjhqOpmEcRT86FdH6/sUrB4RBN5bghslJNunbZ P/7t4tIIj1wHHM+EWtbHce8+Cm6ZT+GmiDUJsUIndDpQxEOhpwnnVn4iBDUO8pWJ3p/G nn5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:references :cc:to:from:content-language:subject:user-agent:mime-version:date :message-id:dkim-signature; bh=8YnqHs6viNhkNZ9+6wZf88ELrlrGUvvnL2bs2/5eVko=; b=ugW9LCsXCanNYUSTHSc+HWuxX7wFgCOq3VI1hPaL2tHaTaZ/qTighRWvoR4ZcAgG9v /zlEMwWSqHeb155q5V/60UrSuKH3IJKcg/NSguV3LzjvsaZsf1Mcdd7gXzj4UW3CSSzB tWYqyD0wwMfWGg5bn0EcOhFlJFbO8+wDtKeOcoxnVaMSj7ucCH9YG1HiddO7K8XQoIms j26sLIv6E2wAli3IHchHChxcgZEsUJUEf2Z7b8bUsZ6YJBm3sWRNqBJ2sbggtyjmVvEd vhj/+FRa6adi9XyW/eemzo14J8lKs5qFZIOLrecsqJXhWTSQu375n7RVEE2Iy2kDRXjq Zwsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=HCrARVnR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v19-20020a637a13000000b0051e011fcd73si8326348pgc.237.2023.05.08.05.42.19; Mon, 08 May 2023 05:42:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=HCrARVnR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234202AbjEHMg0 (ORCPT + 99 others); Mon, 8 May 2023 08:36:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36588 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233918AbjEHMgY (ORCPT ); Mon, 8 May 2023 08:36:24 -0400 Received: from relayaws-01.paragon-software.com (relayaws-01.paragon-software.com [35.157.23.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5199E37E57; Mon, 8 May 2023 05:36:06 -0700 (PDT) Received: from dlg2.mail.paragon-software.com (vdlg-exch-02.paragon-software.com [172.30.1.105]) by relayaws-01.paragon-software.com (Postfix) with ESMTPS id B025E21C2; Mon, 8 May 2023 12:31:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1683549077; bh=8YnqHs6viNhkNZ9+6wZf88ELrlrGUvvnL2bs2/5eVko=; h=Date:Subject:From:To:CC:References:In-Reply-To; b=HCrARVnRdX+b90e0/I9bBzR4l5wjGoEeWjE4hBXgbuvurr62vl2f/r6LIYWMZ9AM5 QhFavzGfh8C8JjEFbZcixiMiI+gpMEkj1fvRdg0N7YknMtwK9/HnLZ8f+Ov7Y4/SFG MacEJQfAmzJeUxlGld1jYnzRwsoWN56Sa4oduakI= Received: from [192.168.211.146] (192.168.211.146) by vdlg-exch-02.paragon-software.com (172.30.1.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Mon, 8 May 2023 15:36:03 +0300 Message-ID: Date: Mon, 8 May 2023 16:36:03 +0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH 01/10] fs/ntfs3: Correct checking while generating attr_list Content-Language: en-US From: Konstantin Komarov To: CC: Linux Kernel Mailing List , References: In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [192.168.211.146] X-ClientProxiedBy: vobn-exch-01.paragon-software.com (172.30.72.13) To vdlg-exch-02.paragon-software.com (172.30.1.105) X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Correct slightly previous commit: Enhance sanity check while generating attr_list Signed-off-by: Konstantin Komarov ---  fs/ntfs3/frecord.c | 25 ++++++++++---------------  1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/fs/ntfs3/frecord.c b/fs/ntfs3/frecord.c index 50214b77c6a3..66f3341c65ec 100644 --- a/fs/ntfs3/frecord.c +++ b/fs/ntfs3/frecord.c @@ -813,10 +813,8 @@ int ni_create_attr_list(struct ntfs_inode *ni)       * Looks like one record_size is always enough.       */      le = kmalloc(al_aligned(rs), GFP_NOFS); -    if (!le) { -        err = -ENOMEM; -        goto out; -    } +    if (!le) +        return -ENOMEM;      mi_get_ref(&ni->mi, &le->ref);      ni->attr_list.le = le; @@ -865,14 +863,14 @@ int ni_create_attr_list(struct ntfs_inode *ni)          if (to_free > free_b) {              err = -EINVAL; -            goto out1; +            goto out;          }      }      /* Allocate child MFT. */      err = ntfs_look_free_mft(sbi, &rno, is_mft, ni, &mi);      if (err) -        goto out1; +        goto out;      err = -EINVAL;      /* Call mi_remove_attr() in reverse order to keep pointers 'arr_move' valid. */ @@ -884,7 +882,7 @@ int ni_create_attr_list(struct ntfs_inode *ni)          attr = mi_insert_attr(mi, b->type, Add2Ptr(b, name_off),                        b->name_len, asize, name_off);          if (!attr) -            goto out1; +            goto out;          mi_get_ref(mi, &le_b[nb]->ref);          le_b[nb]->id = attr->id; @@ -895,19 +893,19 @@ int ni_create_attr_list(struct ntfs_inode *ni)          /* Remove from primary record. */          if (!mi_remove_attr(NULL, &ni->mi, b)) -            goto out1; +            goto out;          if (to_free <= asize)              break;          to_free -= asize;          if (!nb) -            goto out1; +            goto out;      }      attr = mi_insert_attr(&ni->mi, ATTR_LIST, NULL, 0,                    lsize + SIZEOF_RESIDENT, SIZEOF_RESIDENT);      if (!attr) -        goto out1; +        goto out;      attr->non_res = 0;      attr->flags = 0; @@ -921,16 +919,13 @@ int ni_create_attr_list(struct ntfs_inode *ni)      ni->attr_list.dirty = false;      mark_inode_dirty(&ni->vfs_inode); -    goto out; +    return 0; -out1: +out:      kfree(ni->attr_list.le);      ni->attr_list.le = NULL;      ni->attr_list.size = 0;      return err; - -out: -    return 0;  }  /* -- 2.34.1