Don't compare file handles to NULL

Michael Stefaniuc mstefani at redhat.com
Fri Mar 9 12:31:06 CST 2007


Francois Gouget wrote:
> On Wed, 7 Mar 2007, Michael Stefaniuc wrote:
> [...]
> 
>>You mean something like
>>http://people.redhat.com/mstefani/wine/smatch/scripts/file_handles.pl ?
> 
> 
> Cool, thanks.
> 
> 
> [...]
> 
>>Most are false positives (non NULL check before CloseHandle()).
> 
> 
> These are not false positives. Any file handle that is not 
> INVALID_HANDLE_VALUE must be closed with CloseHandle(). So these checks 
> should be against INVALID_HANDLE_VALUE, not NULL. In fact they may 
> possibly be removed altogether.
Ok, as there are no false positives i have improved the script a little;
documented it on my Smatch page and added it to my daily Smatch run.
If you know more functions that return a file_handle i can search for
those too. At the moment i'm looking only for the regexp "CreateFile[AW]?".

> [...]
> 
>>dlls/rpcrt4/rpcss_np_client.c 92 RPCRT4_RpcssNPConnect(58) Comparision
>>of the file handle 'the_pipe' with 0.
>>programs/rpcss/np_server.c 393 RPCSS_NPConnect(57) Comparision of the
>>file handle 'the_pipe' with 0.
> 
> 
> These two combine with what looks like a very bad file handle leak 
> (especially in rpcrt4).
> 
> 
> Sending patches...
Send a patch too for the additional occurence that the improved script
has found.

bye
	michael
-- 
Michael Stefaniuc               Tel.: +49-711-96437-199
Sr. Network Engineer            Fax.: +49-711-96437-111
Red Hat GmbH                    Email: mstefani at redhat.com
Hauptstaetterstr. 58            http://www.redhat.de/
D-70178 Stuttgart



More information about the wine-devel mailing list