2016-11-03 09:14:32

by Chandan Rajendra

[permalink] [raw]
Subject: [PATCH] ext4: ext4_mb_mark_free_simple: Fix integer value truncation

'border' variable is set to a value of 2 times the block size of the
underlying filesystem. With 64k block size, the resulting value won't
fit into a 16-bit variable. Hence this commit changes the data type of
'border' to 'unsigned int'.

Signed-off-by: Chandan Rajendra <[email protected]>
---
fs/ext4/mballoc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index f418f55..a937ac7 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -669,7 +669,7 @@ static void ext4_mb_mark_free_simple(struct super_block *sb,
ext4_grpblk_t min;
ext4_grpblk_t max;
ext4_grpblk_t chunk;
- unsigned short border;
+ unsigned int border;

BUG_ON(len > EXT4_CLUSTERS_PER_GROUP(sb));

--
2.5.5


2016-11-03 19:32:39

by Andreas Dilger

[permalink] [raw]
Subject: Re: [PATCH] ext4: ext4_mb_mark_free_simple: Fix integer value truncation

On Nov 3, 2016, at 3:14 AM, Chandan Rajendra <[email protected]> wrote:
>
> 'border' variable is set to a value of 2 times the block size of the
> underlying filesystem. With 64k block size, the resulting value won't
> fit into a 16-bit variable. Hence this commit changes the data type of
> 'border' to 'unsigned int'.
>
> Signed-off-by: Chandan Rajendra <[email protected]>

Reviewed-by: Andreas Dilger <[email protected]>

> ---
> fs/ext4/mballoc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
> index f418f55..a937ac7 100644
> --- a/fs/ext4/mballoc.c
> +++ b/fs/ext4/mballoc.c
> @@ -669,7 +669,7 @@ static void ext4_mb_mark_free_simple(struct super_block *sb,
> ext4_grpblk_t min;
> ext4_grpblk_t max;
> ext4_grpblk_t chunk;
> - unsigned short border;
> + unsigned int border;
>
> BUG_ON(len > EXT4_CLUSTERS_PER_GROUP(sb));
>
> --
> 2.5.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html


Cheers, Andreas






Attachments:
signature.asc (833.00 B)
Message signed with OpenPGP using GPGMail

2016-11-15 02:24:27

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] ext4: ext4_mb_mark_free_simple: Fix integer value truncation

On Thu, Nov 03, 2016 at 01:32:33PM -0600, Andreas Dilger wrote:
> On Nov 3, 2016, at 3:14 AM, Chandan Rajendra <[email protected]> wrote:
> >
> > 'border' variable is set to a value of 2 times the block size of the
> > underlying filesystem. With 64k block size, the resulting value won't
> > fit into a 16-bit variable. Hence this commit changes the data type of
> > 'border' to 'unsigned int'.
> >
> > Signed-off-by: Chandan Rajendra <[email protected]>
>
> Reviewed-by: Andreas Dilger <[email protected]>

Applied, with a change in the commit summary:

ext4: fix mballoc breakage with 64k block size

Many thanks!!

- Ted