Re: [PATCH 4.19.y] hugetlb_encode.h: fix undefined behaviour (34 << 26)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 18, 2024 at 05:30:28PM +0000, Carlos Llamas wrote:
> From: Matthias Goergens <matthias.goergens@xxxxxxxxx>
> 
> commit 710bb68c2e3a24512e2d2bae470960d7488e97b1 upstream.
> 
> Left-shifting past the size of your datatype is undefined behaviour in C.
> The literal 34 gets the type `int`, and that one is not big enough to be
> left shifted by 26 bits.
> 
> An `unsigned` is long enough (on any machine that has at least 32 bits for
> their ints.)
> 
> For uniformity, we mark all the literals as unsigned.  But it's only
> really needed for HUGETLB_FLAG_ENCODE_16GB.
> 
> Thanks to Randy Dunlap for an initial review and suggestion.
> 
> Link: https://lkml.kernel.org/r/20220905031904.150925-1-matthias.goergens@xxxxxxxxx
> Signed-off-by: Matthias Goergens <matthias.goergens@xxxxxxxxx>
> Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Cc: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
> Cc: Muchun Song <songmuchun@xxxxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> [cmllamas: fix trivial conflict due to missing page encondigs]
> Signed-off-by: Carlos Llamas <cmllamas@xxxxxxxxxx>
> ---
>  include/uapi/asm-generic/hugetlb_encode.h  | 24 +++++++++++-----------
>  tools/include/asm-generic/hugetlb_encode.h | 20 +++++++++---------
>  2 files changed, 22 insertions(+), 22 deletions(-)

All now queued up, thanks.

greg k-h




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux