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: <20130924154529.GD9093@linux.vnet.ibm.com>
Date:	Tue, 24 Sep 2013 08:45:29 -0700
From:	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
To:	Andy Whitcroft <apw@...onical.com>
Cc:	Joe Perches <joe@...ches.com>, linux-kernel@...r.kernel.org
Subject: Re: False positive in checkpatch

On Tue, Sep 24, 2013 at 04:13:29PM +0100, Andy Whitcroft wrote:
> On Tue, Sep 24, 2013 at 07:03:05AM -0700, Paul E. McKenney wrote:
> > On Mon, Sep 23, 2013 at 09:21:07PM -0700, Joe Perches wrote:
> > > On Mon, 2013-09-23 at 15:59 -0700, Paul E. McKenney wrote:
> > > > Hello!
> > > > 
> > > > The checkpatch.pl script complains as follows:
> > > > 
> > > > ERROR: need consistent spacing around '*' (ctx:WxB)
> > > > #57: FILE: include/linux/rcupdate.h:564:
> > > > +		ACCESS_ONCE(p) = (typeof(*(v)) __force space *)(v); \
> > > > 
> > > > Of course, the two uses of '*' are doing different things, so it should
> > > > be OK for the spacing to be different.
> > > > 
> > > > Could you please fix this?
> > > > 
> > > > 							Thanx, Paul
> > > > 
> > > 
> > > Hi Paul.
> > > 
> > > Try this patch: https://lkml.org/lkml/2013/9/2/428
> > > 
> > > Andy?  Can you verify this suggested patch please?
> > 
> > That does it, thank you!  And it does look like this patch was directed
> > precisely at this patch.  ;-)
> > 
> > 							Thanx, Paul
> > 
> 
> How about this one, it is a bit of a hack but does at least correctly
> correct the formal characterisation of the operator to unary.
> 
> Working on getting this tested a bit better before sending it out
> formally.

Works for me!

							Thanx, Paul

> -apw
> 
> 
> >From 5b4e22c123b3492838d12181129a8c168598dbf4 Mon Sep 17 00:00:00 2001
> From: Andy Whitcroft <apw@...onical.com>
> Date: Tue, 24 Sep 2013 16:10:46 +0100
> Subject: [PATCH] checkpatch: handle miss identified binary operators which
>  bump a close parenthesis
> 
> When we hit a close parenthesis, any binary operators we have without right
> hand sides cannot actually be binary if the code is correctly formatted.
> Go back and fix up any we get wrong.
> 
> Signed-off-by: Andy Whitcroft <apw@...onical.com>
> ---
>  scripts/checkpatch.pl | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 47016c3..3d56e6e 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -1277,6 +1277,16 @@ sub annotate_values {
>  			} else {
>  				print "PAREN('$1')\n" if ($dbg_values > 1);
>  			}
> +			# Check for any pending binary operators, if they but up against this
> +			# bracket then they are really unary, correct them.
> +			my $pos = length($res) - 1;
> +			while ($pos >= 0 && substr($res, $pos, 1) eq 'N') {
> +				if (substr($var, $pos, 1) eq 'B') {
> +					substr($var, $pos, 1) = 'U';
> +					print "BINARY WACKED TO UNARY at $pos\n" if ($dbg_values > 1);
> +				}
> +				$pos--;
> +			}
> 
>  		} elsif ($cur =~ /^($Ident)\s*\(/o) {
>  			print "FUNC($1)\n" if ($dbg_values > 1);
> @@ -1331,12 +1341,12 @@ sub annotate_values {
>  		} elsif ($cur =~ /^(-(?![->])|\+(?!\+)|\*|\&\&|\&)/o) {
>  			my $variant;
> 
> -			print "OPV($1)\n" if ($dbg_values > 1);
>  			if ($type eq 'V') {
>  				$variant = 'B';
>  			} else {
>  				$variant = 'U';
>  			}
> +			print "OPV($1) -> $variant\n" if ($dbg_values > 1);
> 
>  			substr($var, length($res), 1, $variant);
>  			$type = 'N';
> -- 
> 1.8.1.2
> 

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