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] [day] [month] [year] [list]
Message-ID: <b9fcab5c9aa44964ba04ea1ff2b5de59@AcuMS.aculab.com>
Date: Sun, 7 Jan 2024 20:55:55 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Matt Jan' <zoo868e@...il.com>, Andrew Morton <akpm@...ux-foundation.org>,
	Andy Shevchenko <andriy.shevchenko@...ux.intel.com>, Herve Codina
	<herve.codina@...tlin.com>, Mark Brown <broonie@...nel.org>, "Matthew Wilcox
 (Oracle)" <willy@...radead.org>, "linux-kernel@...r.kernel.org"
	<linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] minmax: allow comparisons of 'long long int' against
 'unsigned char/short/int'

From: Matt Jan
> Sent: 07 January 2024 20:11
> 
> Since 'unsigned int' get promoted to 'signed long long int' it is safe
> to compare them against an 'long long int' value.

Yes, but not as below.
That change would allow pretty much everything through since everything
except 'unsigned long long' would be signed.

You'd need a much more complex check and the CPP bloat is pretty
horrid already.

That particular check is there to promote unsigned char/short to
signed int - which always happens.

	David

> 
> Signed-off-by: Matt Jan <zoo868e@...il.com>
> ---
>  include/linux/minmax.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/minmax.h b/include/linux/minmax.h
> index 2ec559284a9f..61171286b468 100644
> --- a/include/linux/minmax.h
> +++ b/include/linux/minmax.h
> @@ -37,7 +37,7 @@
> 
>  #define __types_ok(x, y) 					\
>  	(__is_signed(x) == __is_signed(y) ||			\
> -		__is_signed((x) + 0) == __is_signed((y) + 0) ||	\
> +		__is_signed((x) + 0ll) == __is_signed((y) + 0ll) ||	\
>  		__is_noneg_int(x) || __is_noneg_int(y))
> 
>  #define __cmp_op_min <
> --
> 2.34.1
> 

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ