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]
Date:	Thu, 06 Aug 2009 18:06:41 +0530
From:	Raja R Harinath <harinath@...rynot.org>
To:	linux-kernel@...r.kernel.org
Subject:  Re: [PATCH] kmemcheck: fix sparse warning

Hi,

Johannes Berg <johannes@...solutions.net> writes:

>> Signed-off-by: Johannes Berg <johannes@...solutions.net>

I know I'm colouring the bike-shed but you can avoid the outer do-while
with:

>> --- wireless-testing.orig/include/linux/kmemcheck.h	2009-07-06 11:41:16.000000000 +0200
>> +++ wireless-testing/include/linux/kmemcheck.h	2009-07-06 11:41:30.000000000 +0200
>> @@ -137,13 +137,13 @@ static inline void kmemcheck_mark_initia
>>  	int name##_end[0];
>>  
>>  #define kmemcheck_annotate_bitfield(ptr, name)				\
>> -	do if (ptr) {							\
>> +	do { if (ptr) {							\

   +    if (ptr) {

>>  		int _n = (long) &((ptr)->name##_end)			\
>>  			- (long) &((ptr)->name##_begin);		\
>>  		BUILD_BUG_ON(_n < 0);					\
>>  									\
>>  		kmemcheck_mark_initialized(&((ptr)->name##_begin), _n);	\
>> -	} while (0)
>> +	} } while (0)

   +    } else

Of course, that tailing 'else' may be much too clever to live.  A
slightly less clever but more idiomatic approach would be to use

  +    } else do {} while (0)

but what's the point.  Oh well, ignore me :-) I'm just pained by the
'} }' due to my wierd sense of aesthetics.

- Hari

--
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