shlwapi.dll, Fix endless loop in StrPBrkW

Michael Stefaniuc mstefani at redhat.de
Fri Mar 14 17:44:22 CST 2003


Ok, i finaly got the time to finish the smatch script. It checks for
"while|for (...);" constructs and would have found the bug which started
this thread. It found also two possible infinite while loops:
dlls/kernel/tests/thread.c	line 102
dlls/winmm/mciseq/mcimidi.c	line 982
but that could be also a busy loop waiting for an other thread to modify
the data.
For the script and mored details see
http://people.redhat.com/mstefani/wine/smatch/

bye
	michael

On Mon, Mar 03, 2003 at 11:14:34PM +0100, Michael Stefaniuc wrote:
> On Mon, Mar 03, 2003 at 04:14:16PM -0500, Vincent Béron wrote:
> > Michael Stefaniuc a écrit:
> > > 
> > > That's even easier in smatch, i have to just check for:
> > > (if|for|while)_cond
> > > end_(if|for|while)
> > > 
> > > but that's still a lot of false positives. One false positive (real
> > > code) is:
> > > 	while (*p++ != 0x4D && p < pend);
> > > 
> > > I need to check what's inside the () too. I'm looking at the moment at
> > > the false positives to know what to look for.
> > 
> > Probably anything that changes a value (++, --, =, +=, -=, *=, /=, etc.).
> That is my intention.
> 
> > But then you risk losing some real problems, as something might be 
> > correctly assigned in the condition part of a while, but with a ";" as 
> > loop instead of the real loop.
> Hmm ... that is also easy to check
> while (...);
> {
> translates into smatch:
> end_while
> cmpstmt_start
> 
> A lot of nice stuff to play with.
> 
> bye
> 	michael
> 

-- 
Michael Stefaniuc               Tel.: +49-711-96437-199
System Administration           Fax.: +49-711-96437-111
Red Hat GmbH                    Email: mstefani at redhat.com
Hauptstaetterstr. 58            http://www.redhat.de/
D-70178 Stuttgart
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20030315/462396eb/attachment.pgp


More information about the wine-devel mailing list