You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Wayne Johnson (JIRA)" <ax...@ws.apache.org> on 2007/05/17 17:01:16 UTC

[jira] Commented: (AXISCPP-1031) SSL_write called with m_sslHandle=null when socket closed

    [ https://issues.apache.org/jira/browse/AXISCPP-1031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12496595 ] 

Wayne Johnson commented on AXISCPP-1031:
----------------------------------------

Patch:  (Permission is given to include this in the product)

Index: transport/axis3/HTTPSSLChannel/HTTPSSLChannel.cpp
===================================================================
--- transport/axis3/HTTPSSLChannel/HTTPSSLChannel.cpp   (revision 516429)
+++ transport/axis3/HTTPSSLChannel/HTTPSSLChannel.cpp   (working copy)
@@ -710,8 +710,13 @@
 int HTTPSSLChannel::
 WriteToSocket( const char * psTxBuffer, int iSize)
 {
-    int nByteSent;
+    int nByteSent=-1;

+    if (!m_sslHandle)
+    {
+      return -1;
+    }
+
     nByteSent = SSL_write( m_sslHandle, (char *) psTxBuffer, iSize);

     if(nByteSent < 0)

This could also be fixed by having httptransport.cpp check the return codes from it's calls to writeBytes.


> SSL_write called with m_sslHandle=null when socket closed
> ---------------------------------------------------------
>
>                 Key: AXISCPP-1031
>                 URL: https://issues.apache.org/jira/browse/AXISCPP-1031
>             Project: Axis-C++
>          Issue Type: Bug
>          Components: Transport (axis3)
>    Affects Versions:  1.6 Final
>         Environment: Testing with Axis[J] on a jetty server.  Server has maxIdleTime=60000 (for testing, but any time could be used).  WIndowsXP.
>            Reporter: Wayne Johnson
>             Fix For:  1.6 Final
>
>
> When Jetty closes the socket due to maxIdleTime, the next write (from httptransport.cpp, ~line 264) detects the closure and calls HTTPSSLChannel::OpenSSL_Close(), which sets m_sslHandle = NULL.  httptransport.cpp, ~line 265 then calls the m_pActiveChannel->writeBytes() again to send the remainder of the packet (without checking if the first write succeded).  The null handle causes a crash.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org