From patchwork Mon Jan 29 08:07:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Konstantin Komarov X-Patchwork-Id: 193315 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2087:b0:106:209c:c626 with SMTP id gs7csp421868dyb; Mon, 29 Jan 2024 00:07:53 -0800 (PST) X-Google-Smtp-Source: AGHT+IG6I/QD1EnsKAQvd3+DuwxJz6ZDgcggoz8vN0qtuy5m/59UkurWbQSI9dXkGL/TOdWcn8Gc X-Received: by 2002:a0d:d2c2:0:b0:5fb:5250:a781 with SMTP id u185-20020a0dd2c2000000b005fb5250a781mr3853260ywd.31.1706515672720; Mon, 29 Jan 2024 00:07:52 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706515672; cv=pass; d=google.com; s=arc-20160816; b=j+2aNOsYbOVmAYFesPsUgqcjcqj2mK0IzQy6Zk1E1LrovDJEzNJ40s2uSSbXtoGj4K h4/oIyo7dZs1BSRznz+Rxg2BT0yY1MrNe5Z7nbAemDglk4DN2XvIFBi3gpgLxbBrIWLv +niZ2H7hnsOvmOV2/uNcmNnuMoQgGvyfl7hAjcYaxkM9ksKXj5a2Vj4hhUbKPBUExXrb SNn8rYz1Kn2LECJmuLon/qT8tQ7SkhqwzhBN8mmZ4qq+8VRoCHB85orkggiG/iPNG4wH IC4+Y27wVFyhSRMsnI+iVGqrFzhhY7SvfmsSq3eSiuMMDq06m3FoyOmyjyuFxEbGIJOo VJGA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature :dkim-signature; bh=SelnU1PmjcEBam/XFIeYfnjb/zVT85VEHjJYVt2fRhM=; fh=P7I85FIabZcM8ojWdeG8ABpTZepe/Xtte9jKWDfUHBM=; b=TZUH46Vy5m/vxzbWBKu7NZ75202YwzJFG7VldvbARLJ0NSxjn8gdX8YN34Fzvgzm0f w7aXX4fMI+vTYM6DMgjRClYQ95V3MVDwhmifsSvp+NcELSGnbz630OMgyLHRbkXw95Ya IFWeWDQE3Mg5IHqLPsQSwIMJjHgRjVtAuWtepRNdAR1fGnwfKkBb2VWhn537CyiTi885 ZirgcoxlWfjySrrKOElBOPO4tza8G080X3OmL8P5cktcx0ZxrsfjhbrxGgvbPGR4+8cf TJxm4hZ6k+xbVbCuNpCSKTvwukOeCPRM2KsrUzCcrtgjFRcnVswp3jm3yAiV/vc27QwS YnLQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=u6Vv7kMM; dkim=pass header.i=@paragon-software.com header.s=mail header.b=Wtto7Qtd; arc=pass (i=1 spf=pass spfdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dmarc=pass fromdomain=paragon-software.com); spf=pass (google.com: domain of linux-kernel+bounces-42326-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-42326-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id p26-20020a05620a22fa00b00783f53a5507si3345727qki.741.2024.01.29.00.07.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jan 2024 00:07:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-42326-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=u6Vv7kMM; dkim=pass header.i=@paragon-software.com header.s=mail header.b=Wtto7Qtd; arc=pass (i=1 spf=pass spfdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dmarc=pass fromdomain=paragon-software.com); spf=pass (google.com: domain of linux-kernel+bounces-42326-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-42326-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 80F961C22E3A for ; Mon, 29 Jan 2024 08:07:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F291C53E0A; Mon, 29 Jan 2024 08:07:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b="u6Vv7kMM"; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b="Wtto7Qtd" Received: from relayaws-01.paragon-software.com (relayaws-01.paragon-software.com [35.157.23.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC22C537E4; Mon, 29 Jan 2024 08:07:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=35.157.23.187 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706515654; cv=none; b=Yy5ADQkFG8/J4WvD9QxVJd+bVQt7b85Yi+P9m7kp7c5PSd3zBa9q7GG5YIo+97q7mvf7Dg0s3glQzQ7GJHIQPDY2K/GIYO8Lw60ntxzQ4b7Iarx/I6+nCjtZS8tRJczUrESEXc1IDteDObGNCAOu6589LnUSsbz8IslN4do2Yvk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706515654; c=relaxed/simple; bh=ebmE+3+S0pyuODXXnBFsAaOW8KZdxmR2O/v1cJbjSO4=; h=Message-ID:Date:MIME-Version:Subject:From:To:CC:References: In-Reply-To:Content-Type; b=FWxT1FbR2DkjL75FmaP6cR/1kVVcJrTqCjP8+7N1A+pRvoHlMHsOHEJxTj7NCYA23n6tZeGcbeb3f4XU5PyCliTzO+J5F1GoV7reDCv6SgXegfVnTpjyHrZoqYZ+naW8BkprqphZWgRSyNN0EtiHMzgjjWp1VZuUjRavnWTy2ZM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=paragon-software.com; spf=pass smtp.mailfrom=paragon-software.com; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b=u6Vv7kMM; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b=Wtto7Qtd; arc=none smtp.client-ip=35.157.23.187 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=paragon-software.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=paragon-software.com Received: from relayfre-01.paragon-software.com (unknown [172.30.72.12]) by relayaws-01.paragon-software.com (Postfix) with ESMTPS id 7FDD4211A; Mon, 29 Jan 2024 08:00:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1706515239; bh=SelnU1PmjcEBam/XFIeYfnjb/zVT85VEHjJYVt2fRhM=; h=Date:Subject:From:To:CC:References:In-Reply-To; b=u6Vv7kMMhVrF1vzHeBcbgCVN50yqGtaSjYEW8ON03Jpi9XNbYJTXzaxT3SL7XzqkR 6cVEFcLHJqpCZPwiKlGjpz4nt/DQ35sChxYkSuds3Mglu5URBYpWvpL+eCJTyNUdyU PwK2jkF7UHG1AxfabfmC4+8rZX4YlrHvxS8NDj4A= Received: from dlg2.mail.paragon-software.com (vdlg-exch-02.paragon-software.com [172.30.1.105]) by relayfre-01.paragon-software.com (Postfix) with ESMTPS id CD4702135; Mon, 29 Jan 2024 08:07:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1706515649; bh=SelnU1PmjcEBam/XFIeYfnjb/zVT85VEHjJYVt2fRhM=; h=Date:Subject:From:To:CC:References:In-Reply-To; b=Wtto7QtdPRPmS/B/yMBSisnCRJ6+b1ajjrp4oEe6VyxUX0X4ZSj8qrypAZAtWHZj9 lYzyzKoRORuHV0Debb33xTzi+KuDmwW4b2O3si54WDc+C+3enMK+RyZdkLoaGZNKuK ZTtdTn5ydRwrRNARy+ocBiKd+dGUC7ujq+i7Y2SQ= Received: from [192.168.211.199] (192.168.211.199) 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, 29 Jan 2024 11:07:29 +0300 Message-ID: <7d42dc06-2f7f-40b4-8d9f-89eebd0a8f06@paragon-software.com> Date: Mon, 29 Jan 2024 11:07:29 +0300 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 1/5] fs/ntfs3: Prevent generic message "attempt to access beyond end of device" Content-Language: en-US From: Konstantin Komarov To: CC: , References: In-Reply-To: X-ClientProxiedBy: vobn-exch-01.paragon-software.com (172.30.72.13) To vdlg-exch-02.paragon-software.com (172.30.1.105) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789411378131784965 X-GMAIL-MSGID: 1789411378131784965 It used in test environment. Signed-off-by: Konstantin Komarov ---  fs/ntfs3/fsntfs.c  | 24 ++++++++++++++++++++++++  fs/ntfs3/ntfs_fs.h | 14 +-------------  2 files changed, 25 insertions(+), 13 deletions(-)                 bool simple); @@ -1032,19 +1033,6 @@ static inline u64 bytes_to_block(const struct super_block *sb, u64 size)      return (size + sb->s_blocksize - 1) >> sb->s_blocksize_bits;  } -static inline struct buffer_head *ntfs_bread(struct super_block *sb, -                         sector_t block) -{ -    struct buffer_head *bh = sb_bread_unmovable(sb, block); - -    if (bh) -        return bh; - -    ntfs_err(sb, "failed to read volume at offset 0x%llx", -         (u64)block << sb->s_blocksize_bits); -    return NULL; -} -  static inline struct ntfs_inode *ntfs_i(struct inode *inode)  {      return container_of(inode, struct ntfs_inode, vfs_inode); diff --git a/fs/ntfs3/fsntfs.c b/fs/ntfs3/fsntfs.c index 321978019407..ae2ef5c11868 100644 --- a/fs/ntfs3/fsntfs.c +++ b/fs/ntfs3/fsntfs.c @@ -1007,6 +1007,30 @@ static inline __le32 security_hash(const void *sd, size_t bytes)      return cpu_to_le32(hash);  } +/* + * simple wrapper for sb_bread_unmovable. + */ +struct buffer_head *ntfs_bread(struct super_block *sb, sector_t block) +{ +    struct ntfs_sb_info *sbi = sb->s_fs_info; +    struct buffer_head *bh; + +    if (unlikely(block >= sbi->volume.blocks)) { +        /* prevent generic message "attempt to access beyond end of device" */ +        ntfs_err(sb, "try to read out of volume at offset 0x%llx", +             (u64)block << sb->s_blocksize_bits); +        return NULL; +    } + +    bh = sb_bread_unmovable(sb, block); +    if (bh) +        return bh; + +    ntfs_err(sb, "failed to read volume at offset 0x%llx", +         (u64)block << sb->s_blocksize_bits); +    return NULL; +} +  int ntfs_sb_read(struct super_block *sb, u64 lbo, size_t bytes, void *buffer)  {      struct block_device *bdev = sb->s_bdev; diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h index 2b54ae94440f..81f7563428ee 100644 --- a/fs/ntfs3/ntfs_fs.h +++ b/fs/ntfs3/ntfs_fs.h @@ -586,6 +586,7 @@ bool check_index_header(const struct INDEX_HDR *hdr, size_t bytes);  int log_replay(struct ntfs_inode *ni, bool *initialized);  /* Globals from fsntfs.c */ +struct buffer_head *ntfs_bread(struct super_block *sb, sector_t block);  bool ntfs_fix_pre_write(struct NTFS_RECORD_HEADER *rhdr, size_t bytes);  int ntfs_fix_post_read(struct NTFS_RECORD_HEADER *rhdr, size_t bytes, From patchwork Mon Jan 29 08:08:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Konstantin Komarov X-Patchwork-Id: 193316 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2087:b0:106:209c:c626 with SMTP id gs7csp422225dyb; Mon, 29 Jan 2024 00:08:54 -0800 (PST) X-Google-Smtp-Source: AGHT+IHsXDSyws+nUewxlC3f7F5hpJszC92jOXmMvmIWGkXMGhrpz7wsLFuQzcanZkHmY+UaQdrK X-Received: by 2002:a05:6358:c90:b0:176:4135:fa3b with SMTP id o16-20020a0563580c9000b001764135fa3bmr3655428rwj.31.1706515734145; Mon, 29 Jan 2024 00:08:54 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706515734; cv=pass; d=google.com; s=arc-20160816; b=qs51z4eSivd5OSdckK1SXGHlfUnRHdL3ufy0J9KA3dI5zfuRwg0A+g4lde0Y5hTkok ODXiTKKvXQzpqwNFbRYVVJyraO12TDlx8CUbLWNtv69e3IzMu/5ZLJ65yKf978i0rjQy vqLxE5nHtSiKYkAZ87nswunKqsP9M5MQrYQjhJvMvVJep8Cz4XVNWzDrV0WkQME7frmn EC+trrCBpBGxIbbaZOE2YmzWFtR1NITZmNDNK1c1RpnRd+yixCrtD1pDUkkxX8GHwNif w5TOThJ9aGCRgm0yVC2P02bLQx+Mq4mSL3pp1O5pyoitg/iBdisDlsqO6s4frHBiQPuh gAYg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature :dkim-signature; bh=chi2nY9wvqimOanOPJ924vEM3xM63w6P1XRw2v6gYFk=; fh=P7I85FIabZcM8ojWdeG8ABpTZepe/Xtte9jKWDfUHBM=; b=N4zKscVOA5hcvHlIoTSWfg7NsxpKZjljPfrR/+QmtCxYXuF9577cIIFY2wW8ZfVDQl HOS5JDjOoi3ZhSnfNqyQLQ4dmzSwLsc3EVqcD0Er2Y9DN1C7DYNcGQJiR6UumgKrxdqb x0lTc0BHvxKJdH3TtYRPJRKUAs4MW9LidshQokNg9HRRfyCmvKR4ibH1WGz57eQVh7eC JtQ5e2yT0ElwrPyy9Zp6Vm7DnwjaCBekxn0KRlci+5+EySPYs2gMck0Z8Tsg7SfFkGaA Y9WgDBaxQvCdD+08JdEMQ7fhPUT2hBWxNA4DeQAGY9KC58BAibx9A1V9P3wgVWkq0jUH J3tQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=tJcaLeFF; dkim=pass header.i=@paragon-software.com header.s=mail header.b="kcu/vikB"; arc=pass (i=1 spf=pass spfdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dmarc=pass fromdomain=paragon-software.com); spf=pass (google.com: domain of linux-kernel+bounces-42329-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-42329-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id e2-20020a17090a6f8200b0028d11002285si7171325pjk.49.2024.01.29.00.08.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jan 2024 00:08:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-42329-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=tJcaLeFF; dkim=pass header.i=@paragon-software.com header.s=mail header.b="kcu/vikB"; arc=pass (i=1 spf=pass spfdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dmarc=pass fromdomain=paragon-software.com); spf=pass (google.com: domain of linux-kernel+bounces-42329-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-42329-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 56BFC2835A2 for ; Mon, 29 Jan 2024 08:08:44 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 08A6152F7D; Mon, 29 Jan 2024 08:08:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b="tJcaLeFF"; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b="kcu/vikB" Received: from relayaws-01.paragon-software.com (relayaws-01.paragon-software.com [35.157.23.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C743D53E02; Mon, 29 Jan 2024 08:08:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=35.157.23.187 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706515687; cv=none; b=KXDAf09ivpm4ZgW08+QoGjs6cRkviqiYrM8uxQAax6EBaXz2J+KkqFhIHFQKUqw5IitYTgm3v1M+PskKtAVmawNlKFXkHA7DpypZbEzuq3E63QfHZCM2IkWCW3vS6VmIT5sw9jKW0ztaS9sexCuvdFxxOm0wRhkl7YphtAoTAko= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706515687; c=relaxed/simple; bh=pNUWJLC16kaMVAE5WhZN3NaYZlEojCmbVSdRqnHrhnw=; h=Message-ID:Date:MIME-Version:Subject:From:To:CC:References: In-Reply-To:Content-Type; b=HnERL2q6nms0vKjD0jVS+dnAAeKYPaU3SAqBW9XlWP5r8ViKq713ez3i0DeVJ4Yk3+3bGfIWulrxhuNVAFAOQ5j3YzWVRRFhNzbza+cOCYMr+WJnXZ/UsKfJnxAs8FfQKY+e+Ocq5qPngkc/6HXl/7mgGu2QpCUuYavjknzxs7E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=paragon-software.com; spf=pass smtp.mailfrom=paragon-software.com; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b=tJcaLeFF; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b=kcu/vikB; arc=none smtp.client-ip=35.157.23.187 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=paragon-software.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=paragon-software.com Received: from relayfre-01.paragon-software.com (unknown [172.30.72.12]) by relayaws-01.paragon-software.com (Postfix) with ESMTPS id 83C70211A; Mon, 29 Jan 2024 08:01:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1706515271; bh=chi2nY9wvqimOanOPJ924vEM3xM63w6P1XRw2v6gYFk=; h=Date:Subject:From:To:CC:References:In-Reply-To; b=tJcaLeFFp9u+SJjkx6v3cXKW00jKI2GE3PLAUnzWa7osSY3/61blJwoqDuCec29JW fCfPd5/dSQWNFrnEX26qQ8jouwWLhd/QPuLtWj6deXl8g0cddxUzMAd/hWDfBGgp6N nQSatgM03mfgrnxmKiy0VI6YbMyxLF8F9aYP2VU8= Received: from dlg2.mail.paragon-software.com (vdlg-exch-02.paragon-software.com [172.30.1.105]) by relayfre-01.paragon-software.com (Postfix) with ESMTPS id CEF771D33; Mon, 29 Jan 2024 08:08:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1706515681; bh=chi2nY9wvqimOanOPJ924vEM3xM63w6P1XRw2v6gYFk=; h=Date:Subject:From:To:CC:References:In-Reply-To; b=kcu/vikBsl5uPk/768daBudBH+s021A47Uz8SUBWuWSS9X4EJhQecPXwaK5tFJp40 0ST1HYQgl9yIgA0JI3HNAPHSO+VkQLU3M85+XgyBNJ7G44bf66baMNXYdZUfMFbtbX duJlJ+Lnivnt0NlJdxIm8dBb2OVECOgZF1zWSTww= Received: from [192.168.211.199] (192.168.211.199) 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, 29 Jan 2024 11:08:01 +0300 Message-ID: <5be49112-9f60-4091-97f8-b9a6d0aeee4c@paragon-software.com> Date: Mon, 29 Jan 2024 11:08:01 +0300 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 2/5] fs/ntfs3: Use i_size_read and i_size_write Content-Language: en-US From: Konstantin Komarov To: CC: , References: In-Reply-To: X-ClientProxiedBy: vobn-exch-01.paragon-software.com (172.30.72.13) To vdlg-exch-02.paragon-software.com (172.30.1.105) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789411442648449799 X-GMAIL-MSGID: 1789411442648449799 Signed-off-by: Konstantin Komarov ---  fs/ntfs3/attrib.c  |  4 ++--  fs/ntfs3/dir.c     |  2 +-  fs/ntfs3/file.c    | 11 ++++++-----  fs/ntfs3/frecord.c | 10 +++++-----  fs/ntfs3/index.c   |  8 ++++----  fs/ntfs3/inode.c   |  2 +-  6 files changed, 19 insertions(+), 18 deletions(-) diff --git a/fs/ntfs3/attrib.c b/fs/ntfs3/attrib.c index 646e2dad1b75..7aadf5010999 100644 --- a/fs/ntfs3/attrib.c +++ b/fs/ntfs3/attrib.c @@ -2084,7 +2084,7 @@ int attr_collapse_range(struct ntfs_inode *ni, u64 vbo, u64 bytes)      /* Update inode size. */      ni->i_valid = valid_size; -    ni->vfs_inode.i_size = data_size; +    i_size_write(&ni->vfs_inode, data_size);      inode_set_bytes(&ni->vfs_inode, total_size);      ni->ni_flags |= NI_FLAG_UPDATE_PARENT;      mark_inode_dirty(&ni->vfs_inode); @@ -2499,7 +2499,7 @@ int attr_insert_range(struct ntfs_inode *ni, u64 vbo, u64 bytes)      mi_b->dirty = true;  done: -    ni->vfs_inode.i_size += bytes; +    i_size_write(&ni->vfs_inode, ni->vfs_inode.i_size + bytes);      ni->ni_flags |= NI_FLAG_UPDATE_PARENT;      mark_inode_dirty(&ni->vfs_inode); diff --git a/fs/ntfs3/dir.c b/fs/ntfs3/dir.c index 9f6dd445eb04..effa6accf8a8 100644 --- a/fs/ntfs3/dir.c +++ b/fs/ntfs3/dir.c @@ -517,7 +517,7 @@ static int ntfs_dir_count(struct inode *dir, bool *is_empty, size_t *dirs,      u32 e_size, off, end;      size_t drs = 0, fles = 0, bit = 0;      struct indx_node *node = NULL; -    size_t max_indx = ni->vfs_inode.i_size >> ni->dir.index_bits; +    size_t max_indx = i_size_read(&ni->vfs_inode) >> ni->dir.index_bits;      if (is_empty)          *is_empty = true; diff --git a/fs/ntfs3/file.c b/fs/ntfs3/file.c index 07ed3d946e7c..b702543a8795 100644 --- a/fs/ntfs3/file.c +++ b/fs/ntfs3/file.c @@ -646,7 +646,7 @@ static long ntfs_fallocate(struct file *file, int mode, loff_t vbo, loff_t len)              if (err)                  goto out;          } else if (new_size > i_size) { -            inode->i_size = new_size; +            i_size_write(inode, new_size);          }      } @@ -696,7 +696,7 @@ int ntfs3_setattr(struct mnt_idmap *idmap, struct dentry *dentry,              goto out;          }          inode_dio_wait(inode); -        oldsize = inode->i_size; +        oldsize = i_size_read(inode);          newsize = attr->ia_size;          if (newsize <= oldsize) @@ -708,7 +708,7 @@ int ntfs3_setattr(struct mnt_idmap *idmap, struct dentry *dentry,              goto out;          ni->ni_flags |= NI_FLAG_UPDATE_PARENT; -        inode->i_size = newsize; +        i_size_write(inode, newsize);      }      setattr_copy(idmap, inode, attr); @@ -847,7 +847,7 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from)      size_t count = iov_iter_count(from);      loff_t pos = iocb->ki_pos;      struct inode *inode = file_inode(file); -    loff_t i_size = inode->i_size; +    loff_t i_size = i_size_read(inode);      struct address_space *mapping = inode->i_mapping;      struct ntfs_inode *ni = ntfs_i(inode);      u64 valid = ni->i_valid; @@ -1177,7 +1177,8 @@ static int ntfs_file_release(struct inode *inode, struct file *file)          down_write(&ni->file.run_lock);          err = attr_set_size(ni, ATTR_DATA, NULL, 0, &ni->file.run, -                    inode->i_size, &ni->i_valid, false, NULL); +                    i_size_read(inode), &ni->i_valid, false, +                    NULL);          up_write(&ni->file.run_lock);          ni_unlock(ni); diff --git a/fs/ntfs3/frecord.c b/fs/ntfs3/frecord.c index 2636ab7640ac..3b42938a9d3b 100644 --- a/fs/ntfs3/frecord.c +++ b/fs/ntfs3/frecord.c @@ -2099,7 +2099,7 @@ int ni_readpage_cmpr(struct ntfs_inode *ni, struct page *page)      gfp_t gfp_mask;      struct page *pg; -    if (vbo >= ni->vfs_inode.i_size) { +    if (vbo >= i_size_read(&ni->vfs_inode)) {          SetPageUptodate(page);          err = 0;          goto out; @@ -2173,7 +2173,7 @@ int ni_decompress_file(struct ntfs_inode *ni)  {      struct ntfs_sb_info *sbi = ni->mi.sbi;      struct inode *inode = &ni->vfs_inode; -    loff_t i_size = inode->i_size; +    loff_t i_size = i_size_read(inode);      struct address_space *mapping = inode->i_mapping;      gfp_t gfp_mask = mapping_gfp_mask(mapping);      struct page **pages = NULL; @@ -2457,6 +2457,7 @@ int ni_read_frame(struct ntfs_inode *ni, u64 frame_vbo, struct page **pages,      struct ATTR_LIST_ENTRY *le = NULL;      struct runs_tree *run = &ni->file.run;      u64 valid_size = ni->i_valid; +    loff_t i_size = i_size_read(&ni->vfs_inode);      u64 vbo_disk;      size_t unc_size;      u32 frame_size, i, npages_disk, ondisk_size; @@ -2548,7 +2549,7 @@ int ni_read_frame(struct ntfs_inode *ni, u64 frame_vbo, struct page **pages,              }          } -        frames = (ni->vfs_inode.i_size - 1) >> frame_bits; +        frames = (i_size - 1) >> frame_bits;          err = attr_wof_frame_info(ni, attr, run, frame64, frames,                        frame_bits, &ondisk_size, &vbo_data); @@ -2556,8 +2557,7 @@ int ni_read_frame(struct ntfs_inode *ni, u64 frame_vbo, struct page **pages,              goto out2;          if (frame64 == frames) { -            unc_size = 1 + ((ni->vfs_inode.i_size - 1) & -                    (frame_size - 1)); +            unc_size = 1 + ((i_size - 1) & (frame_size - 1));              ondisk_size = attr_size(attr) - vbo_data;          } else {              unc_size = frame_size; diff --git a/fs/ntfs3/index.c b/fs/ntfs3/index.c index cf92b2433f7a..daabaad63aaf 100644 --- a/fs/ntfs3/index.c +++ b/fs/ntfs3/index.c @@ -1462,7 +1462,7 @@ static int indx_create_allocate(struct ntfs_index *indx, struct ntfs_inode *ni,          goto out2;      if (in->name == I30_NAME) { -        ni->vfs_inode.i_size = data_size; +        i_size_write(&ni->vfs_inode, data_size);          inode_set_bytes(&ni->vfs_inode, alloc_size);      } @@ -1544,7 +1544,7 @@ static int indx_add_allocate(struct ntfs_index *indx, struct ntfs_inode *ni,      }      if (in->name == I30_NAME) -        ni->vfs_inode.i_size = data_size; +        i_size_write(&ni->vfs_inode, data_size);      *vbn = bit << indx->idx2vbn_bits; @@ -2090,7 +2090,7 @@ static int indx_shrink(struct ntfs_index *indx, struct ntfs_inode *ni,          return err;      if (in->name == I30_NAME) -        ni->vfs_inode.i_size = new_data; +        i_size_write(&ni->vfs_inode, new_data);      bpb = bitmap_size(bit);      if (bpb * 8 == nbits) @@ -2576,7 +2576,7 @@ int indx_delete_entry(struct ntfs_index *indx, struct ntfs_inode *ni,          err = attr_set_size(ni, ATTR_ALLOC, in->name, in->name_len,                      &indx->alloc_run, 0, NULL, false, NULL);          if (in->name == I30_NAME) -            ni->vfs_inode.i_size = 0; +            i_size_write(&ni->vfs_inode, 0);          err = ni_remove_attr(ni, ATTR_ALLOC, in->name, in->name_len,                       false, NULL); diff --git a/fs/ntfs3/inode.c b/fs/ntfs3/inode.c index 85452a6b1d40..eb7a8c9fba01 100644 --- a/fs/ntfs3/inode.c +++ b/fs/ntfs3/inode.c @@ -985,7 +985,7 @@ int ntfs_write_end(struct file *file, struct address_space *mapping, loff_t pos,          }          if (pos + err > inode->i_size) { -            inode->i_size = pos + err; +            i_size_write(inode, pos + err);              dirty = true;          } From patchwork Mon Jan 29 08:08:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Konstantin Komarov X-Patchwork-Id: 193317 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2087:b0:106:209c:c626 with SMTP id gs7csp422287dyb; Mon, 29 Jan 2024 00:09:04 -0800 (PST) X-Google-Smtp-Source: AGHT+IFdgEG/DbalYbLiJe98jCA+bL4l3Q7f+c9Lf/fc5L9oPYZ47mCF6c+RTr7Js1BLq7RRjEuO X-Received: by 2002:a05:651c:d7:b0:2cd:1ca6:87bf with SMTP id 23-20020a05651c00d700b002cd1ca687bfmr2820988ljr.8.1706515744113; Mon, 29 Jan 2024 00:09:04 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706515744; cv=pass; d=google.com; s=arc-20160816; b=AOiMdlDl2NRIunt7s5Q+4XVel3v7NQed7J7W45pN83qmry0a3TX7QIRyZDSPXzMzZ1 RCJLAFDdpkTChHtYoK+fqO/I34C7X1bs9GnmY3gdFBmpKSYXtpTOaZYGreRm8Q9UJ3x+ Cw7HUweQ98ZuVLskGbH0oj1z4IufPn2+3wgpccVTTIXmFCakZKfFOiZ6zZdDsD7RO5GK fKM3JMIyxRXHkHXi6DCycFA6VHt3aF8GLYTe4ONUJQ2GnmSDH4Fql33PHSDc3aHrFPdp dpfYqsW76zb5E4KRa5fjCFlG5l6YZ5H9EpmIXDLZMxTqRAI0KfZMlIFzaVRQKa6QS0uJ r57w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature; bh=xeznt+Dol1rUDewd0bVWo6D8uEqRIEtOxRwa5jeQ4+4=; fh=P7I85FIabZcM8ojWdeG8ABpTZepe/Xtte9jKWDfUHBM=; b=tjryMinTadVCXyMVQr6eve5Hyxwolkmn+9IJZ8LeZJyuoPRc08yO8WT1P/wAr3JVuz vOoqMn3pWObzX0xzZc8xqyCdxNlKNjDboA8aVVmixMvae48RPcaKhs4iGmHmQ79ETASe eD6O6OVk/BehOng59A5r1dE+sE06YFgxwuScounFDE5VII9c5FjWYb9/OFUbkhYYzy3o z/2K61wDA3fEG/bJSRpj4EBXRJVL87ahZfKRxlZLsD9KPGWNy4IX7Vgc4/lSZdyvBjJA Muvs/bB7t6EtK26AUr2MeqFdFCHvF4hKr8L4OEhvLawbHxpncWtJKcMy81Gon6NUrk73 W27g== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=S74i0XWS; arc=pass (i=1 spf=pass spfdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dmarc=pass fromdomain=paragon-software.com); spf=pass (google.com: domain of linux-kernel+bounces-42330-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-42330-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id k17-20020a508ad1000000b0055c2e91b96esi3247096edk.363.2024.01.29.00.09.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jan 2024 00:09:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-42330-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=S74i0XWS; arc=pass (i=1 spf=pass spfdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dmarc=pass fromdomain=paragon-software.com); spf=pass (google.com: domain of linux-kernel+bounces-42330-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-42330-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id B44E81F21458 for ; Mon, 29 Jan 2024 08:09:03 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3EB75537F4; Mon, 29 Jan 2024 08:08:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b="S74i0XWS" Received: from relayaws-01.paragon-software.com (relayaws-01.paragon-software.com [35.157.23.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E7CC452F68; Mon, 29 Jan 2024 08:08:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=35.157.23.187 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706515726; cv=none; b=gdPIwPe3alltsMWueEij+nyqBmg86gzpfAcgNrrnYEKaALmWIy0FESGrdzv99b9bl9b1OmbnLrBISehfVfkauLIH2DuAiVzU3XcYUtfX//I+y8rE0HQkAOahnQwWryrOzeSGyVB+0u+pvXk3rKueSrVubVBSITV/qY95z2E1OG0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706515726; c=relaxed/simple; bh=eLCjjqfccU7QtD9Z/zPxtm6zfiWJea3+n+pEq5WYGg8=; h=Message-ID:Date:MIME-Version:Subject:From:To:CC:References: In-Reply-To:Content-Type; b=f0ypxJX1eSNWf6drQxwrc2DM7LJvGe8hMpqRgr3lakiyezuPxcSeYsZV6XP6MtjlN8T9rZ+1a/DNXjHNs4dITaMITWz+U1xAzUrputk6OwyGAcM0EkSRw0X7m47gUGTi2+w1bfx+8s94O3DWBFjxXmgEn74rmBVWSXdr1HwIoB8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=paragon-software.com; spf=pass smtp.mailfrom=paragon-software.com; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b=S74i0XWS; arc=none smtp.client-ip=35.157.23.187 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=paragon-software.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=paragon-software.com 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 91AA2211A; Mon, 29 Jan 2024 08:01:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1706515311; bh=xeznt+Dol1rUDewd0bVWo6D8uEqRIEtOxRwa5jeQ4+4=; h=Date:Subject:From:To:CC:References:In-Reply-To; b=S74i0XWSIfRF+JVBnt337iayJpkT1ksrZPWaVFe8U6idhyTol/XtAFED7eKiihHXx 3bnLehRD7HFMSud7BGLytgQenaWmN2Y9n9bDKednKjAyM5gX0pt5omodk9cUoNasEt qNxW3Y+4Lu/jmzh69HgjeYCgWx04Bp7HsulTZ7aU= Received: from [192.168.211.199] (192.168.211.199) 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, 29 Jan 2024 11:08:41 +0300 Message-ID: <1b1c7be1-0af8-4a2b-a37f-9eedf45cbf1a@paragon-software.com> Date: Mon, 29 Jan 2024 11:08:41 +0300 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 3/5] fs/ntfs3: Correct function is_rst_area_valid Content-Language: en-US From: Konstantin Komarov To: CC: , References: In-Reply-To: X-ClientProxiedBy: vobn-exch-01.paragon-software.com (172.30.72.13) To vdlg-exch-02.paragon-software.com (172.30.1.105) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789411453006524855 X-GMAIL-MSGID: 1789411453006524855 Reported-by: Robert Morris Signed-off-by: Konstantin Komarov ---  fs/ntfs3/fslog.c | 14 ++++++++------  1 file changed, 8 insertions(+), 6 deletions(-) @@ -511,13 +511,15 @@ static inline bool is_rst_area_valid(const struct RESTART_HDR *rhdr)      /* Make sure the sequence number bits match the log file size. */      l_size = le64_to_cpu(ra->l_size); -    file_dat_bits = sizeof(u64) * 8 - le32_to_cpu(ra->seq_num_bits); -    file_size_round = 1u << (file_dat_bits + 3); -    if (file_size_round != l_size && -        (file_size_round < l_size || (file_size_round / 2) > l_size)) { -        return false; +    seq_bits = sizeof(u64) * 8 + 3; +    while (l_size) { +        l_size >>= 1; +        seq_bits -= 1;      } +    if (seq_bits != ra->seq_num_bits) +        return false; +      /* The log page data offset and record header length must be quad-aligned. */      if (!IS_ALIGNED(le16_to_cpu(ra->data_off), 8) ||          !IS_ALIGNED(le16_to_cpu(ra->rec_hdr_len), 8)) diff --git a/fs/ntfs3/fslog.c b/fs/ntfs3/fslog.c index 7dbb000fc691..855519713bf7 100644 --- a/fs/ntfs3/fslog.c +++ b/fs/ntfs3/fslog.c @@ -465,7 +465,7 @@ static inline bool is_rst_area_valid(const struct RESTART_HDR *rhdr)  {      const struct RESTART_AREA *ra;      u16 cl, fl, ul; -    u32 off, l_size, file_dat_bits, file_size_round; +    u32 off, l_size, seq_bits;      u16 ro = le16_to_cpu(rhdr->ra_off);      u32 sys_page = le32_to_cpu(rhdr->sys_page_size); From patchwork Mon Jan 29 08:09:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Konstantin Komarov X-Patchwork-Id: 193318 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2087:b0:106:209c:c626 with SMTP id gs7csp422500dyb; Mon, 29 Jan 2024 00:09:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IE+4XMmdgMsJgDWIGYu4hrRXIwsEzbvxkkn5uPH/uBTMMtpNiBogE4LdwCrmsgYeyeIstdL X-Received: by 2002:a05:6358:708:b0:178:63a6:3c96 with SMTP id e8-20020a056358070800b0017863a63c96mr4289574rwj.57.1706515779170; Mon, 29 Jan 2024 00:09:39 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706515779; cv=pass; d=google.com; s=arc-20160816; b=tKM5/Yzc8io8Odn6QWIyZEJlQpZ7lruLf5UrvLSgrerJ/+ylaPaDigeddtGtVIYFbD c8au+j6Qr8YOH24rvwxaExurv+RnmJqTTtXwY8R7WdmfZyxWWFFdKG/01kKSjZQ7aETU +lodrcdhTIQ5ydWKzaNZAHwEeobI2inafQXkPfh3v6P2SThSwBW0I9bIV2Kuho1k7JNT nd1bSm27yq600MJKpIUCcFlAsCWBmPxq0JGyKTvu33Su9WizC541/vucDcQxNnSzf+VR UHlcEBGxwbSKHXCFmNpySFmV4L1YNwSr4wFRC0jj6Lh0aXrUTl9hmG6LCc1jeux0Jny+ zxLw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature :dkim-signature; bh=mHtFVlGdQT3NlQXqvNi7PsHSg3EPQVtrgac40SxL8CQ=; fh=P7I85FIabZcM8ojWdeG8ABpTZepe/Xtte9jKWDfUHBM=; b=mxj+EE/VeJcjYV/XM20V8c+HbnbDrAOhAFSJNxDBBcdZeouYOx6EMA3C0XdQZc8Eh3 Af6fTaFjchioSgxFZ7H3Wdx6H2OKcOZG+7mtJFkFR+aHyqD3XcExpY7Mqr1CBzRr/SfT cM1NNxEBf/yaW4lCJN+lGa2KaBuwB+Xvz6OerEJzZd6/uH5L+OCcr5iJZbXw/3iYlezH tqRH2dIqxGmk6Q8eQJNAr/TvXr3ykjwQxTBiOicFRrCacsn8oz08eZtZ+OpTvYjUM4hr V9kxF1/Cy6iK3NVTDBljBQAESuSbyUDg9ZCQOmC383G6IdZYy1GYPrESZZVM20Fi1kqp f9Dw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b="ReYwIs/7"; dkim=pass header.i=@paragon-software.com header.s=mail header.b=MhXoP1eQ; arc=pass (i=1 spf=pass spfdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dmarc=pass fromdomain=paragon-software.com); spf=pass (google.com: domain of linux-kernel+bounces-42331-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-42331-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id lp17-20020a056a003d5100b006dddd64f90dsi5340281pfb.118.2024.01.29.00.09.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jan 2024 00:09:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-42331-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b="ReYwIs/7"; dkim=pass header.i=@paragon-software.com header.s=mail header.b=MhXoP1eQ; arc=pass (i=1 spf=pass spfdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dmarc=pass fromdomain=paragon-software.com); spf=pass (google.com: domain of linux-kernel+bounces-42331-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-42331-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id E80FD2812F7 for ; Mon, 29 Jan 2024 08:09:38 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2E36053E09; Mon, 29 Jan 2024 08:09:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b="ReYwIs/7"; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b="MhXoP1eQ" Received: from relayaws-01.paragon-software.com (relayaws-01.paragon-software.com [35.157.23.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 39D04537E7; Mon, 29 Jan 2024 08:09:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=35.157.23.187 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706515760; cv=none; b=E1sGzERwFJc+acXqYIc6VQ12xN6eV/3hYYA4p5sQWF1xvDRK4neih1GgMnY84skxYGhytmsj928p5tJOKjogyc+J5U6UN5g58d0vZMNbo7gjrj26g/r0RJVjbSFfwWX+T+v6DTi0UWoBHKyWNkGZYICDuCa6Gflf7n1q9ktPyrE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706515760; c=relaxed/simple; bh=sOrdau0GamvWHIukB319bDFasFZTPBKgNYMEGNGazj4=; h=Message-ID:Date:MIME-Version:Subject:From:To:CC:References: In-Reply-To:Content-Type; b=fcgK/1ndvyyVbdmLFGWRIH7Fy7pmO2F0RW8eS98Oy7busKeCxvWw8hLKiepiOpL9geGUQPya6OIOnLzgX/qJKepBnM3fSCpWWh98d1MovJisgCfsA5i1ozzwqLx4A7efJsjnIb+Zy7D8VPbwNBH3THnkG31DsLNPaGaLhrYZBSA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=paragon-software.com; spf=pass smtp.mailfrom=paragon-software.com; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b=ReYwIs/7; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b=MhXoP1eQ; arc=none smtp.client-ip=35.157.23.187 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=paragon-software.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=paragon-software.com Received: from relayfre-01.paragon-software.com (unknown [172.30.72.12]) by relayaws-01.paragon-software.com (Postfix) with ESMTPS id EFEEE211A; Mon, 29 Jan 2024 08:02:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1706515347; bh=mHtFVlGdQT3NlQXqvNi7PsHSg3EPQVtrgac40SxL8CQ=; h=Date:Subject:From:To:CC:References:In-Reply-To; b=ReYwIs/7rsKMUum49OlcvYARoFaXe8NkykGh9OVAemrQwbi1mKrgu9eLlYI5ynnqs ADKYd/FZwEBD6raZyW9RCavC8V9eDb7jr4YB6q37r8zJEg/78OYmLEuTCkss5FlZH1 XMUspqloSkpfcXH0CC/qOtVXS+SKaH2UAOC9RgUg= Received: from dlg2.mail.paragon-software.com (vdlg-exch-02.paragon-software.com [172.30.1.105]) by relayfre-01.paragon-software.com (Postfix) with ESMTPS id 4C34A1D33; Mon, 29 Jan 2024 08:09:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1706515757; bh=mHtFVlGdQT3NlQXqvNi7PsHSg3EPQVtrgac40SxL8CQ=; h=Date:Subject:From:To:CC:References:In-Reply-To; b=MhXoP1eQRy++X4M6HQL73o3RLT82XyIrdJeQ8fVC5j+Ce3OH+MAe3ZdHQrBcdyxuM /bqq3icfy7ZxMVfHvo/ykZZQG1DG6sXyH2Pk0WsWmcZZCsG5PPT3g6BQCwJh/k8p4S 5V5lFs8i+0SfLwsVl3O73qpzFJtkhGPtpzqp6Avo= Received: from [192.168.211.199] (192.168.211.199) 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, 29 Jan 2024 11:09:16 +0300 Message-ID: <92465892-aad4-428d-bcfe-03584d302bb5@paragon-software.com> Date: Mon, 29 Jan 2024 11:09:16 +0300 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 4/5] fs/ntfs3: Fixed overflow check in mi_enum_attr() Content-Language: en-US From: Konstantin Komarov To: CC: , References: In-Reply-To: X-ClientProxiedBy: vobn-exch-01.paragon-software.com (172.30.72.13) To vdlg-exch-02.paragon-software.com (172.30.1.105) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789411490069126745 X-GMAIL-MSGID: 1789411490069126745 Reported-by: Robert Morris Signed-off-by: Konstantin Komarov ---  fs/ntfs3/record.c | 2 +-  1 file changed, 1 insertion(+), 1 deletion(-)          t32 = sizeof(short) * attr->name_len; diff --git a/fs/ntfs3/record.c b/fs/ntfs3/record.c index 7b6423584eae..6aa3a9d44df1 100644 --- a/fs/ntfs3/record.c +++ b/fs/ntfs3/record.c @@ -279,7 +279,7 @@ struct ATTRIB *mi_enum_attr(struct mft_inode *mi, struct ATTRIB *attr)          if (t16 > asize)              return NULL; -        if (t16 + le32_to_cpu(attr->res.data_size) > asize) +        if (le32_to_cpu(attr->res.data_size) > asize - t16)              return NULL; From patchwork Mon Jan 29 08:09:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Konstantin Komarov X-Patchwork-Id: 193319 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2087:b0:106:209c:c626 with SMTP id gs7csp422768dyb; Mon, 29 Jan 2024 00:10:17 -0800 (PST) X-Google-Smtp-Source: AGHT+IELOGr/9bh4xE6XD1AF1DJYFwko2dtIC7xBkupBWCOyOkOCVK8hcxeKJxmxkR6Y4jHRgvjL X-Received: by 2002:a17:906:d10a:b0:a34:dbdc:929b with SMTP id b10-20020a170906d10a00b00a34dbdc929bmr3703782ejz.0.1706515817179; Mon, 29 Jan 2024 00:10:17 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706515817; cv=pass; d=google.com; s=arc-20160816; b=SRBk5DsbY62vWEcMn+WUqBONtKAOtg5tkThO9WdgoYlZ36IBeh7vqMnfd37Cxw9WEe 27glv3MdnJhyBXyqX6BfT5rtBDf6Wvip4I/r5M8nFZ3vtDDaBIn9F1YhSeOpTpbJ66VD hNRtXea7RFNLFaeP9NqiJuu3gsZp8pf6v7vT+fPS3Mkm+Jejl2HiCw72sm9/gB3vYT5d qGuOKl/ryf7reJUzd7d4LdD3l28ZXhwMWqaj1I13KmKOxN77z1sc55J8W1FqJ5GkEYWz cTGSrT5QjOIgELNZzHyfwJAtZ22Atx3h96anTLSXui64HnHLiQgLxlGea+nb7ltZdHCm nzkw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature; bh=OOsG9oL5dHVVYoMwTwA8sDDvVQSxjrxSXBRzmTmF2nw=; fh=P7I85FIabZcM8ojWdeG8ABpTZepe/Xtte9jKWDfUHBM=; b=nhHvuHBCVYHr6+XZz/pdbCCctQ7irRfndSqrSyoksEiYMAbEHBLi76XM2pIMRUqk2P dMUgEIvbP8z0bOgxzd8gJvV31+KWne/6q1ehLKS3qaaCTYjpkpGIaYbaFdWh4qX4aLwX xkRpguZ8vlrbzWwu3AOFXBldCxAyqrGnEmDoTgqoz3dGX9Kjnfga4gRueUxAg9+/eeTr xMRkBtRCRiSl86gA0MWUZJgrnxIk1MxOOa/LVUVrQybgIr7A6xPj0uhe2dqOyLNfk1U+ 39y6HqgA/7xHtPvcpyfY++T1KmoUlAfUZgelF7ghDAkhPp+dQdadQNzSb7ojfREy05MS X1/Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=CvaSyzMn; arc=pass (i=1 spf=pass spfdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dmarc=pass fromdomain=paragon-software.com); spf=pass (google.com: domain of linux-kernel+bounces-42333-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-42333-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id u13-20020a170906068d00b00a351eb552cdsi2664126ejb.466.2024.01.29.00.10.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jan 2024 00:10:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-42333-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@paragon-software.com header.s=mail header.b=CvaSyzMn; arc=pass (i=1 spf=pass spfdomain=paragon-software.com dkim=pass dkdomain=paragon-software.com dmarc=pass fromdomain=paragon-software.com); spf=pass (google.com: domain of linux-kernel+bounces-42333-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-42333-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=paragon-software.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 54BCE1F217F9 for ; Mon, 29 Jan 2024 08:10:16 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 362BB5380C; Mon, 29 Jan 2024 08:09:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b="CvaSyzMn" Received: from relayaws-01.paragon-software.com (relayaws-01.paragon-software.com [35.157.23.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 322A2524D1; Mon, 29 Jan 2024 08:09:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=35.157.23.187 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706515793; cv=none; b=DyDkCZ6yJWhWhDh16vjIrxeGHutEzoVDCE8pE+ZmnUsqj/xLa03kE3ZkFOceras0oHGTUX4LokfHrSmH/riuqWQ2fzRucXccoSoTJ5ODEg0tfvQXM1iHJ4bzeLN+hEm6I7rQbDJr7nBXl//b6J+ZFuSylwAOfaOh8Arnx4frMGA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706515793; c=relaxed/simple; bh=KX95JtnfIp7j8VPbIRjew5/zzGHwozjZO+7zxqvr6n4=; h=Message-ID:Date:MIME-Version:Subject:From:To:CC:References: In-Reply-To:Content-Type; b=MaQJhnH63sIoVgy6pw1smoRMH5aHXeREmjNlOOnCuyLsxh6n7sVp8EWnED+nDx8Ql8KBdRke5LrVsGLQmaF0VuOJk0X5MbkgCwSfrMjqckT0DzHoEREM8IZVwgNYPDBpEJvjMEhGMA8HV+9kJcOoJIVCJN/1ycuS7We+obto2G8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=paragon-software.com; spf=pass smtp.mailfrom=paragon-software.com; dkim=pass (1024-bit key) header.d=paragon-software.com header.i=@paragon-software.com header.b=CvaSyzMn; arc=none smtp.client-ip=35.157.23.187 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=paragon-software.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=paragon-software.com 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 E9FB3211A; Mon, 29 Jan 2024 08:02:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paragon-software.com; s=mail; t=1706515380; bh=OOsG9oL5dHVVYoMwTwA8sDDvVQSxjrxSXBRzmTmF2nw=; h=Date:Subject:From:To:CC:References:In-Reply-To; b=CvaSyzMnnyoXfENdmRZuDjgsGfGg6Hucbb6A9eG1C8gZkkMh7b9EryaYA41RJvThq FmGP4pdlWQtHvkJ93jZSeYSYg0cl5IZgxk9D6r8exkhSv638R3/uK4eDlhQN2NW9ay Gzy+6XGAMsTuGr36+5vxEm3RsJGusY68D3f6I7/w= Received: from [192.168.211.199] (192.168.211.199) 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, 29 Jan 2024 11:09:49 +0300 Message-ID: <75e61877-b616-4227-bca6-83580442d822@paragon-software.com> Date: Mon, 29 Jan 2024 11:09:49 +0300 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 5/5] fs/ntfs3: Update inode->i_size after success write into compressed file Content-Language: en-US From: Konstantin Komarov To: CC: , References: In-Reply-To: X-ClientProxiedBy: vobn-exch-01.paragon-software.com (172.30.72.13) To vdlg-exch-02.paragon-software.com (172.30.1.105) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789411529335529994 X-GMAIL-MSGID: 1789411529335529994 Reported-by: Giovanni Santini Signed-off-by: Konstantin Komarov ---  fs/ntfs3/file.c | 2 ++  1 file changed, 2 insertions(+)  } diff --git a/fs/ntfs3/file.c b/fs/ntfs3/file.c index b702543a8795..691b0c9b95ae 100644 --- a/fs/ntfs3/file.c +++ b/fs/ntfs3/file.c @@ -1054,6 +1054,8 @@ static ssize_t ntfs_compress_write(struct kiocb *iocb, struct iov_iter *from)      iocb->ki_pos += written;      if (iocb->ki_pos > ni->i_valid)          ni->i_valid = iocb->ki_pos; +    if (iocb->ki_pos > i_size) +        i_size_write(inode, iocb->ki_pos);      return written;