lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190626041133.GB32272@ZenIV.linux.org.uk>
Date:   Wed, 26 Jun 2019 05:11:33 +0100
From:   Al Viro <viro@...iv.linux.org.uk>
To:     "Darrick J. Wong" <darrick.wong@...cle.com>
Cc:     matthew.garrett@...ula.com, yuchao0@...wei.com, tytso@....edu,
        shaggy@...nel.org, ard.biesheuvel@...aro.org, josef@...icpanda.com,
        hch@...radead.org, clm@...com, adilger.kernel@...ger.ca,
        jk@...abs.org, jack@...e.com, dsterba@...e.com, jaegeuk@...nel.org,
        cluster-devel@...hat.com, jfs-discussion@...ts.sourceforge.net,
        linux-efi@...r.kernel.org, Jan Kara <jack@...e.cz>,
        reiserfs-devel@...r.kernel.org, linux-kernel@...r.kernel.org,
        linux-f2fs-devel@...ts.sourceforge.net, linux-xfs@...r.kernel.org,
        linux-nilfs@...r.kernel.org, linux-mtd@...ts.infradead.org,
        ocfs2-devel@....oracle.com, linux-fsdevel@...r.kernel.org,
        linux-ext4@...r.kernel.org, linux-btrfs@...r.kernel.org
Subject: Re: [PATCH 2/5] vfs: create a generic checking function for
 FS_IOC_FSSETXATTR

On Tue, Jun 25, 2019 at 07:32:18PM -0700, Darrick J. Wong wrote:
> --- a/fs/btrfs/ioctl.c
> +++ b/fs/btrfs/ioctl.c
> @@ -373,10 +373,9 @@ static int check_xflags(unsigned int flags)
>  static int btrfs_ioctl_fsgetxattr(struct file *file, void __user *arg)
>  {
>  	struct btrfs_inode *binode = BTRFS_I(file_inode(file));
> -	struct fsxattr fa;
> -
> -	memset(&fa, 0, sizeof(fa));
> -	fa.fsx_xflags = btrfs_inode_flags_to_xflags(binode->flags);
> +	struct fsxattr fa = {
> +		.fsx_xflags = btrfs_inode_flags_to_xflags(binode->flags),
> +	};

Umm...  Sure, there's no padding, but still - you are going to copy that thing
to userland...  How about

static inline void simple_fill_fsxattr(struct fsxattr *fa, unsigned xflags)
{
	memset(fa, 0, sizeof(*fa));
	fa->fsx_xflags = xflags;
}

and let the compiler optimize the crap out?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ