diff options
-rw-r--r-- | io/source/acceptor/acc_socket.cxx | 10 | ||||
-rw-r--r-- | io/source/connector/ctr_pipe.cxx | 9 | ||||
-rw-r--r-- | io/source/connector/ctr_socket.cxx | 7 |
3 files changed, 18 insertions, 8 deletions
diff --git a/io/source/acceptor/acc_socket.cxx b/io/source/acceptor/acc_socket.cxx index b1a30a15a82f..3fe29f3c0596 100644 --- a/io/source/acceptor/acc_socket.cxx +++ b/io/source/acceptor/acc_socket.cxx @@ -198,13 +198,12 @@ namespace io_acceptor { { notifyListeners(this, &_started, callStarted); - if( aReadBytes.getLength() != nBytesToRead ) + if( aReadBytes.getLength() < nBytesToRead ) { aReadBytes.realloc( nBytesToRead ); } - sal_Int32 i = 0; - i = m_socket.read( aReadBytes.getArray() , aReadBytes.getLength() ); + sal_Int32 i = m_socket.read( aReadBytes.getArray() , aReadBytes.getLength() ); if(i != nBytesToRead) { @@ -220,7 +219,10 @@ namespace io_acceptor { throw ioException; } - + if( i < aReadBytes.getLength() ) + { + aReadBytes.realloc( i ); + } return i; } else diff --git a/io/source/connector/ctr_pipe.cxx b/io/source/connector/ctr_pipe.cxx index df1529173ba6..dafdc4208019 100644 --- a/io/source/connector/ctr_pipe.cxx +++ b/io/source/connector/ctr_pipe.cxx @@ -49,11 +49,16 @@ namespace stoc_connector { { if( ! m_nStatus ) { - if( aReadBytes.getLength() != nBytesToRead ) + if( aReadBytes.getLength() < nBytesToRead ) { aReadBytes.realloc( nBytesToRead ); } - return m_pipe.read( aReadBytes.getArray() , aReadBytes.getLength() ); + sal_Int32 n = m_pipe.read( aReadBytes.getArray() , aReadBytes.getLength() ); + if( n < aReadBytes.getLength() ) + { + aReadBytes.realloc( n ); + } + return n; } else { throw IOException(); diff --git a/io/source/connector/ctr_socket.cxx b/io/source/connector/ctr_socket.cxx index 2c0d3f691b2f..787a470d14b1 100644 --- a/io/source/connector/ctr_socket.cxx +++ b/io/source/connector/ctr_socket.cxx @@ -123,7 +123,7 @@ namespace stoc_connector { { notifyListeners(this, &_started, callStarted); - if( aReadBytes.getLength() != nBytesToRead ) + if( aReadBytes.getLength() < nBytesToRead ) { aReadBytes.realloc( nBytesToRead ); } @@ -143,7 +143,10 @@ namespace stoc_connector { throw ioException; } - + if( i < aReadBytes.getLength() ) + { + aReadBytes.realloc( i ); + } return i; } else |