Re: [PATCH] xfs: fix signed integer overflow

From: Xie XiuQi
Date: Tue Sep 13 2016 - 03:24:15 EST


On 2016/9/13 14:57, Dave Chinner wrote:
> On Fri, Sep 09, 2016 at 03:16:48PM +0800, Xie XiuQi wrote:
>> On 2016/9/9 14:42, Joe Perches wrote:
>>> On Fri, 2016-09-09 at 14:38 +0800, Xie XiuQi wrote:
>>>> Use 1U for unsigned long, or we'll meet a overflow issue with UBSAN.
>>> trivia: misleading commit message
>>>
>>> 1U is for unsigned int not unsigned long int
>>>
>> Sorry, my fault. Thank you for your comments.
>>
>> From 9cb8e36406a54ce0eaade31dd28f6068f03de1d2 Mon Sep 17 00:00:00 2001
>> From: Xie XiuQi <xiexiuqi@xxxxxxxxxx>
>> Date: Tue, 6 Sep 2016 11:15:34 +0800
>> Subject: [PATCH v2] xfs: fix signed integer overflow
> ....
>> ---
>> fs/xfs/xfs_buf_item.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c
>> index e455f90..3a27997 100644
>> --- a/fs/xfs/xfs_buf_item.c
>> +++ b/fs/xfs/xfs_buf_item.c
>> @@ -865,7 +865,7 @@ xfs_buf_item_log_segment(
>> */
>> if (bit) {
>> end_bit = MIN(bit + bits_to_set, (uint)NBWORD);
>> - mask = ((1 << (end_bit - bit)) - 1) << bit;
>> + mask = ((1U << (end_bit - bit)) - 1) << bit;
>> *wordp |= mask;
>> wordp++;
>> bits_set = end_bit - bit;
> This patch is whitespace damaged and fails to apply. I've fixed it
> up as this is a trivial change. However, please fix the problem
> before you submit more patches.

I will, thank you very mush.

>
> Cheers,
>
> Dave.