Hi Chris:
 
The null check was removed in TIPC 1.7.4 as part of a code optimization
effort.  I thought I could get rid of the check by reworking the socket
create code to render the check unnecessary.  Unfortunately, I've
recently discovered that a socket can also be created by the higher
level Linux socket accept() routine, and may (in some error path cases)
be passed to TIPC's close code without first going through TIPC's create
routine.  Hence, the check turns out to be necessary after all.
 
I'll be releasing a fix for this problem in TIPC 1.7.5 -- hopefully next
week.  (The release will also contain a few other fixes.)  In the
meantime, the change you made to restore the missing check is the proper
thing to do as a workaround.
 
I now realize that I should have posted my discovery of this bug to the
TIPC mailing list as soon as I discovered it, so as to have saved you
the trouble of tracking down the cause of the problem yourself.  My only
excuse is that this seems to be the first time that an easily
reproduceable operation-affecting bug has appeared in the TIPC 1.7
product, and the need for such a posting has never arisen.  Now that it
has, I'll know what to do if similar issues arise in the future.
 
Thanks for taking the time to report the problem.
 
Regards,
Al


________________________________

        From: Chris Ramstad [mailto:[EMAIL PROTECTED] 
        Sent: Friday, September 14, 2007 4:03 PM
        To: Stephens, Allan
        Cc: [EMAIL PROTECTED]
        Subject: NULL pointer guard removed in TIPC 1.7.4
tipc_socket.cpp:release()
        
        
        Hi Allan,
        
        Rich Lopez is a colleague of mine, and he suggested I shoot you
an email to see if you have any insight / history on the following
change. We were experiencing a null pointer dereference in the kernel,
which terminated our running application.  I noticed that in 1.7.3
tipc_socket.cpp / release(), a null pointer guard existed to check that
sock->sk was not NULL (and immediately return).  As soon as I put the
check back in, our problem went away, however I assume it was removed
for good reason. 
        
        Do you have any thoughts on this issue?  If needed, I can
recreate and send logs, or try to write a test program that exhibits the
same behavior
        
        Regards,
        Chris Ramstad
        

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
tipc-discussion mailing list
tipc-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tipc-discussion

Reply via email to