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]
Message-Id: <200912201243.20111.mitov@issp.bas.bg>
Date:	Sun, 20 Dec 2009 12:43:19 +0200
From:	Marin Mitov <mitov@...p.bas.bg>
To:	Simon Horman <horms@...ge.net.au>
Cc:	David Airlie <airlied@...ux.ie>,
	Jesse Barnes <jesse.barnes@...el.com>,
	dri-devel@...ts.sourceforge.net, linux-kernel@...r.kernel.org
Subject: Re: [PATCH]Silancing a false positive: "may be used uninitialized"

On Sunday 20 December 2009 11:56:44 am Simon Horman wrote:
> On Sun, Dec 20, 2009 at 09:03:27AM +0200, Marin Mitov wrote:
> > Hello all,
> > 
> > Silancing a false positive:
> > warning: 'width' may be used uninitialized in this function
> > drivers/gpu/drm/drm_edid.c
> 
> Is it guaranteed that the switch will always see a value covered by the
> four cases it has? 

Yes it is. The value is masked (& 0xc0) so all the possible values are
(0x00, 0x40, 0x80, 0xc0) covered by the switch. That's why it is false positive.

> If not width would be used without having been initialised.
> 
> Perhaps adding
> 
> 		default:
> 			BUG();
> 
> would be worthwhile?
> 
> > 
> > Signed-off-by: Marin Mitov <mitov@...p.bas.bg>
> > ==========================================================================
> > --- a/drivers/gpu/drm/drm_edid.c	2009-12-20 07:43:57.000000000 +0200
> > +++ b/drivers/gpu/drm/drm_edid.c	2009-12-20 07:45:49.000000000 +0200
> > @@ -913,7 +913,7 @@
> >  	const int rates[] = { 60, 85, 75, 60, 50 };
> >  
> >  	for (i = 0; i < 4; i++) {
> > -		int width, height;
> > +		int uninitialized_var(width), height;
> >  		cvt = &(timing->data.other_data.data.cvt[i]);
> >  
> >  		height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 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/
> 
--
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