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] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 24 Oct 2012 07:43:37 +0200
From:	Stefani Seibold <stefani@...bold.net>
To:	Wei Yang <weiyang@...ux.vnet.ibm.com>
Cc:	akpm@...ux-foundation.org, richard.weinberger@...il.com,
	jkosina@...e.cz, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] Replace the type check code with typecheck() in kfifo_in

Am Mittwoch, den 24.10.2012, 11:41 +0800 schrieb Wei Yang:
> In kfifo_in marco, one piece of code which is arounded by if(0) will check the
> type of __tmp->ptr_const and __buf. If they are different type, there will
> output a warning during compiling. This piece of code is not self explaining
> and a little bit hard to understand.
> 
> Based on Andrew Morton's suggestion, this patch replace this with typecheck()
> which will be easy to understand.
> 
> In the same file, there are several places with the same code style. This
> patch change them too.
> 
> Signed-off-by: Wei Yang <weiyang@...ux.vnet.ibm.com>
> Reviewed-by: Andrew Morton <akpm@...ux-foundation.org>
> Reviewed-by: richard -rw- weinberger <richard.weinberger@...il.com>
> ---
>  include/linux/kfifo.h |   22 +++++-----------------
>  1 files changed, 5 insertions(+), 17 deletions(-)
> 
> diff --git a/include/linux/kfifo.h b/include/linux/kfifo.h
> index 10308c6..680c293 100644
> --- a/include/linux/kfifo.h
> +++ b/include/linux/kfifo.h
> @@ -390,10 +390,7 @@ __kfifo_int_must_check_helper( \
>  	unsigned int __ret; \
>  	const size_t __recsize = sizeof(*__tmp->rectype); \
>  	struct __kfifo *__kfifo = &__tmp->kfifo; \
> -	if (0) { \
> -		typeof(__tmp->ptr_const) __dummy __attribute__ ((unused)); \
> -		__dummy = (typeof(__val))NULL; \
> -	} \
> +	typecheck(typeof(__tmp->ptr_const), __val); \
>  	if (__recsize) \
>  		__ret = __kfifo_in_r(__kfifo, __val, sizeof(*__val), \
>  			__recsize); \
> @@ -433,7 +430,7 @@ __kfifo_uint_must_check_helper( \
>  	const size_t __recsize = sizeof(*__tmp->rectype); \
>  	struct __kfifo *__kfifo = &__tmp->kfifo; \
>  	if (0) \
> -		__val = (typeof(__tmp->ptr))0; \
> +		__val = (typeof(__tmp->ptr))NULL; \
>  	if (__recsize) \
>  		__ret = __kfifo_out_r(__kfifo, __val, sizeof(*__val), \
>  			__recsize); \
> @@ -512,10 +509,7 @@ __kfifo_uint_must_check_helper( \
>  	unsigned long __n = (n); \
>  	const size_t __recsize = sizeof(*__tmp->rectype); \
>  	struct __kfifo *__kfifo = &__tmp->kfifo; \
> -	if (0) { \
> -		typeof(__tmp->ptr_const) __dummy __attribute__ ((unused)); \
> -		__dummy = (typeof(__buf))NULL; \
> -	} \
> +	typecheck(typeof(__tmp->ptr_const), __buf);\
>  	(__recsize) ?\
>  	__kfifo_in_r(__kfifo, __buf, __n, __recsize) : \
>  	__kfifo_in(__kfifo, __buf, __n); \
> @@ -565,10 +559,7 @@ __kfifo_uint_must_check_helper( \
>  	unsigned long __n = (n); \
>  	const size_t __recsize = sizeof(*__tmp->rectype); \
>  	struct __kfifo *__kfifo = &__tmp->kfifo; \
> -	if (0) { \
> -		typeof(__tmp->ptr) __dummy = NULL; \
> -		__buf = __dummy; \
> -	} \
> +	typecheck(typeof(__tmp->ptr), __buf); \
>  	(__recsize) ?\
>  	__kfifo_out_r(__kfifo, __buf, __n, __recsize) : \
>  	__kfifo_out(__kfifo, __buf, __n); \
> @@ -777,10 +768,7 @@ __kfifo_uint_must_check_helper( \
>  	unsigned long __n = (n); \
>  	const size_t __recsize = sizeof(*__tmp->rectype); \
>  	struct __kfifo *__kfifo = &__tmp->kfifo; \
> -	if (0) { \
> -		typeof(__tmp->ptr) __dummy __attribute__ ((unused)) = NULL; \
> -		__buf = __dummy; \
> -	} \
> +	typecheck(typeof(__tmp->ptr), __buf); \
>  	(__recsize) ? \
>  	__kfifo_out_peek_r(__kfifo, __buf, __n, __recsize) : \
>  	__kfifo_out_peek(__kfifo, __buf, __n); \

Acked-by: Stefani Seibold <stefani@...bold.net>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ