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: <ZdJFqmZhIwTFTbHR@duo.ucw.cz>
Date: Sun, 18 Feb 2024 19:00:10 +0100
From: Pavel Machek <pavel@....cz>
To: Sasha Levin <sashal@...nel.org>
Cc: linux-kernel@...r.kernel.org, stable@...r.kernel.org,
	Konstantin Komarov <almaz.alexandrovich@...agon-software.com>,
	ntfs3@...ts.linux.dev
Subject: Re: [PATCH AUTOSEL 6.1 09/28] fs/ntfs3: Prevent generic message
 "attempt to access beyond end of device"

Hi!

> From: Konstantin Komarov <almaz.alexandrovich@...agon-software.com>
> 
> [ Upstream commit 5ca87d01eba7bdfe9536a157ca33c1455bb8d16c ]
> 
> It used in test environment.

This seems to just replace one printk with another; not sure we want
it in stable.

Best regards,
								Pavel

> diff --git a/fs/ntfs3/fsntfs.c b/fs/ntfs3/fsntfs.c
> index 873b1434a998..34813429e2ab 100644
> --- a/fs/ntfs3/fsntfs.c
> +++ b/fs/ntfs3/fsntfs.c
> @@ -976,6 +976,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 977e1422f904..cbeda94d7161 100644
> --- a/fs/ntfs3/ntfs_fs.h
> +++ b/fs/ntfs3/ntfs_fs.h
> @@ -580,6 +580,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,
>  		       bool simple);
> @@ -1012,19 +1013,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);

-- 
People of Russia, stop Putin before his war on Ukraine escalates.

Download attachment "signature.asc" of type "application/pgp-signature" (196 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ