Re: [PATCH -next 1/1] iomap: Fix a false positive of UBSAN in iomap_seek_data()

From: Matthew Wilcox
Date: Fri Jul 02 2021 - 15:58:18 EST


On Fri, Jul 02, 2021 at 05:21:09PM +0800, Zhen Lei wrote:
> Move the evaluation expression "size - offset" after the "if (offset < 0)"
> judgment statement to eliminate a false positive produced by the UBSAN.
>
> No functional changes.
>
> ==========================================================================
> UBSAN: Undefined behaviour in fs/iomap.c:1435:9
> signed integer overflow:
> 0 - -9223372036854775808 cannot be represented in type 'long long int'

I don't understand. I thought we defined the behaviour of signed
integer overflow in the kernel with whatever-the-gcc-flag-is?