Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1708198ybz; Thu, 23 Apr 2020 04:20:32 -0700 (PDT) X-Google-Smtp-Source: APiQypK9uN+lksuFNqRpA7bCVClRgcZo8PKAU3UX/eI9iNVcqC29wggQ2DnfIOzOeExPTRmjINA9 X-Received: by 2002:a17:906:4482:: with SMTP id y2mr2078771ejo.234.1587640831901; Thu, 23 Apr 2020 04:20:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587640831; cv=none; d=google.com; s=arc-20160816; b=zH9/QFCMOkyUO34iVVPs1Zum63MdEcNgjKFaccmwkty3u0k739DlUytm6ilfzLbI0c DXbUelAUuVtZe15Te69tj1yudMvXU3u81RZWUn2RCsmL2XRTmOHLCwWkbEyMRqMQtFTL KdRA/yI5l66r6ibWMOqkj+OjqvQYWgFEek+fDRe9XTTHEf6vXvX2rvsaq5Vu3TWZD3gK FLjeWHTUi2PvrHeRIBeTppAimpxFswqw8jEqkabqEUwded4jl5E5CcO6XnbURSehQFAg MUAi6KUHoGBKxM7r9GQBsna18yKkfHkv92rcZc3rPWrZyeB5HSE3rV9Je+8LY7Te91kN x1zA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=zYJDu5EbcDI/NDwOZsLfQiO2EgWK/aUTqQjz7GvTVFU=; b=Z8eYCJuI0YXD+09QgE7Zms1PQ5Xz9OuImz/ZSlXC3GQulAex698JR7+P6Cl9WkcW23 qw16/xk+hmo2tpnP4sZPRHt6VFez1MSTe+kxFtkyU2tPdFyTnvYNZybjXVMyvRtdh5cB 96WXXB4ONowl1guoWnxnAnaPNUFJLnUbNgu0ctvYdm1csC9pObTYkOBimHSl9l/CBQIP FcQuvujA+bqj7kg00Im/PRkRaJ4JeXNH0zrWgfKh4dzB0PWvQ5KVecxcewEwHuZeI43l xbp7I3EERkAMbOjsryRMkWi1+RSDJf14hwnbpSVnRysVsI/WZdsy/9Tb0Sgf/bqix0CV mIXA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i14si992527edx.256.2020.04.23.04.20.07; Thu, 23 Apr 2020 04:20:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-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-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727906AbgDWLTx (ORCPT + 99 others); Thu, 23 Apr 2020 07:19:53 -0400 Received: from mx2.suse.de ([195.135.220.15]:54922 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727858AbgDWLTx (ORCPT ); Thu, 23 Apr 2020 07:19:53 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 2E4E5B0BF; Thu, 23 Apr 2020 11:19:51 +0000 (UTC) Received: by quack2.suse.cz (Postfix, from userid 1000) id 765051E1293; Thu, 23 Apr 2020 13:19:51 +0200 (CEST) Date: Thu, 23 Apr 2020 13:19:51 +0200 From: Jan Kara To: Ritesh Harjani Cc: linux-ext4@vger.kernel.org, jack@suse.cz, tytso@mit.edu, adilger@dilger.ca, darrick.wong@oracle.com, hch@infradead.org, Alexander Viro , Dan Carpenter , "Aneesh Kumar K . V" , Murphy Zhou , Miklos Szeredi , Amir Goldstein , linux-fsdevel@vger.kernel.org, linux-unionfs@vger.kernel.org Subject: Re: [PATCH 4/5] overlayfs: Check for range bounds before calling i_op->fiemap() Message-ID: <20200423111951.GK3737@quack2.suse.cz> References: <39b4bf94f6723831a9798237bb1b4ae14da04d98.1587555962.git.riteshh@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <39b4bf94f6723831a9798237bb1b4ae14da04d98.1587555962.git.riteshh@linux.ibm.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org On Thu 23-04-20 16:17:56, Ritesh Harjani wrote: > Underlying fs may not be able to handle the length in fiemap > beyond sb->s_maxbytes. So similar to how VFS ioctl does it, > add fiemap_check_ranges() check in ovl_fiemap() as well > before calling underlying fs i_op->fiemap() call. > > Signed-off-by: Ritesh Harjani > --- > fs/overlayfs/inode.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) Yeah, makes sense. You can add: Reviewed-by: Jan Kara Honza > > diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c > index 79e8994e3bc1..9bcd2e96faad 100644 > --- a/fs/overlayfs/inode.c > +++ b/fs/overlayfs/inode.c > @@ -455,16 +455,21 @@ static int ovl_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, > int err; > struct inode *realinode = ovl_inode_real(inode); > const struct cred *old_cred; > + u64 length; > > if (!realinode->i_op->fiemap) > return -EOPNOTSUPP; > > + err = fiemap_check_ranges(realinode->i_sb, start, len, &length); > + if (err) > + return err; > + > old_cred = ovl_override_creds(inode->i_sb); > > if (fieinfo->fi_flags & FIEMAP_FLAG_SYNC) > filemap_write_and_wait(realinode->i_mapping); > > - err = realinode->i_op->fiemap(realinode, fieinfo, start, len); > + err = realinode->i_op->fiemap(realinode, fieinfo, start, length); > revert_creds(old_cred); > > return err; > -- > 2.21.0 > -- Jan Kara SUSE Labs, CR