diff options
author | Thorsten Behrens <tbehrens@suse.com> | 2013-02-19 12:18:12 +0100 |
---|---|---|
committer | Thorsten Behrens <tbehrens@suse.com> | 2013-02-19 12:19:11 +0100 |
commit | 25f7288ff8ea26e3d3976329d6bbcfe7ca5c5260 (patch) | |
tree | 67648bd99d863bd39944f06e9ce0e5d63693d7b0 /sd | |
parent | 4c7d04c681a44caff1eba8f2022dacdf1242b1b5 (diff) |
Fix crashes in sdremote after suspend/resume cycles.
Change-Id: I0f64820887919386f266290ae8b7c53f8a0a5458
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/ui/remotecontrol/BufferedStreamSocket.cxx | 6 | ||||
-rw-r--r-- | sd/source/ui/remotecontrol/Receiver.cxx | 3 |
2 files changed, 5 insertions, 4 deletions
diff --git a/sd/source/ui/remotecontrol/BufferedStreamSocket.cxx b/sd/source/ui/remotecontrol/BufferedStreamSocket.cxx index 30022d6c526a..50ee73667261 100644 --- a/sd/source/ui/remotecontrol/BufferedStreamSocket.cxx +++ b/sd/source/ui/remotecontrol/BufferedStreamSocket.cxx @@ -77,7 +77,7 @@ sal_Int32 BufferedStreamSocket::readLine( OString& aLine ) // Process buffer first incase data already present. vector<char>::iterator aIt; if ( (aIt = find( aBuffer.begin(), aBuffer.end(), '\n' )) - != aBuffer.end() ) + != aBuffer.end() ) { sal_uInt64 aLocation = aIt - aBuffer.begin(); @@ -96,9 +96,9 @@ sal_Int32 BufferedStreamSocket::readLine( OString& aLine ) else aRet = ::recv( mSocket, &aBuffer[aRead], 100, 0 ); - if ( aRet == 0 ) + if ( aRet <= 0 ) { - return aRet; + return 0; } // Prevent buffer from growing massively large. if ( aRead > MAX_LINE_LENGTH ) diff --git a/sd/source/ui/remotecontrol/Receiver.cxx b/sd/source/ui/remotecontrol/Receiver.cxx index 572551d9e93e..3ec14de911a8 100644 --- a/sd/source/ui/remotecontrol/Receiver.cxx +++ b/sd/source/ui/remotecontrol/Receiver.cxx @@ -52,7 +52,8 @@ void Receiver::Timeout() { std::vector< rtl::OString > aCommands( maExecQueue.front() ); maExecQueue.pop_front(); - executeCommand( aCommands ); + if( !aCommands.empty() ) + executeCommand( aCommands ); Start(); } else |