If the returned message read fills the buffer, http_transport_utils.c clobbers 
the byte passed the end of the buffer
--------------------------------------------------------------------------------------------------------------------

                 Key: AXIS2C-818
                 URL: https://issues.apache.org/jira/browse/AXIS2C-818
             Project: Axis2-C
          Issue Type: Bug
          Components: transport/http
    Affects Versions: 1.1.0
         Environment: Windows, Visual Studio 2005, debug build, libcurl 
enabled, guththila parser enabled
            Reporter: Bill Mitchell


If the returned message from libcurl exceeds 4096 characters, the size of a 
guththila buffer, http_transport_utils clobbers the byte following the end of 
the buffer.  When running the Windows version in debug mode, this is nicely 
diagnosed by the C runtime as a heap corruption failure.  

The problem lies in axis2_http_transport_utils_on_data_request() where it 
always stores a zero byte passed the end of the data read, even if the data 
read fully fills the size of the provided buffer.  As I don't know the intent 
of storing the zero byte, It's not clear to me which of 3 remedies is best:
(1) don't ever store the zero byte, it's past the end of the bytes read
(2) store the zero byte only if fewer characters were read than the size of the 
buffer
(3) always read one byte less than the size of the buffer, thus guaranteeing 
space for a terminating null byte

-- 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to