diff options
author | Matthew J. Francis <mjay.francis@gmail.com> | 2014-10-17 09:30:26 +0800 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2014-10-17 10:10:55 +0200 |
commit | eca78aee9bde79d9f02cda3bfae6c2bc601605b6 (patch) | |
tree | a10128b99dba0025a644c22702b41bd3d2cf2a37 /include/rtl | |
parent | 5f0721a359a265b6b4b33560c979e8c60d2cbab0 (diff) |
Increase assert coverage of OUStringBuffer arguments
Only covers arguments that can be validated with a simple
comparison, and does not attempt validation of arguments which
would require calculation of the length of a string inline
Change-Id: I8a29c8743b47efe3dd45897a1f1371191a5ddb62
Signed-off-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'include/rtl')
-rw-r--r-- | include/rtl/ustrbuf.hxx | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/include/rtl/ustrbuf.hxx b/include/rtl/ustrbuf.hxx index b3cee756f685..8ed738158b3d 100644 --- a/include/rtl/ustrbuf.hxx +++ b/include/rtl/ustrbuf.hxx @@ -474,7 +474,7 @@ public: */ OUStringBuffer & append( const sal_Unicode * str, sal_Int32 len) { - // insert behind the last character + assert( len >= 0 ); rtl_uStringbuffer_insert( &pData, &nCapacity, getLength(), str, len ); return *this; } @@ -553,6 +553,7 @@ public: */ OUStringBuffer & appendAscii( const sal_Char * str, sal_Int32 len) { + assert( len >= 0 ); rtl_uStringbuffer_insert_ascii( &pData, &nCapacity, getLength(), str, len ); return *this; } @@ -795,7 +796,8 @@ public: */ OUStringBuffer & insert( sal_Int32 offset, const sal_Unicode * str, sal_Int32 len) { - // insert behind the last character + assert( offset >= 0 && offset <= pData->length ); + assert( len >= 0 ); rtl_uStringbuffer_insert( &pData, &nCapacity, offset, str, len ); return *this; } @@ -1039,6 +1041,8 @@ public: */ OUStringBuffer & remove( sal_Int32 start, sal_Int32 len ) { + assert( start >= 0 && start <= pData->length ); + assert( len >= 0 ); rtl_uStringbuffer_remove( &pData, start, len ); return *this; } @@ -1055,6 +1059,7 @@ public: */ OUStringBuffer & truncate( sal_Int32 start = 0 ) { + assert( start >= 0 && start <= pData->length ); rtl_uStringbuffer_remove( &pData, start, getLength() - start ); return *this; } @@ -1119,6 +1124,7 @@ public: */ sal_Int32 indexOf( sal_Unicode ch, sal_Int32 fromIndex = 0 ) const { + assert( fromIndex >= 0 && fromIndex <= pData->length ); sal_Int32 ret = rtl_ustr_indexOfChar_WithLength( pData->buffer+fromIndex, pData->length-fromIndex, ch ); return (ret < 0 ? ret : ret+fromIndex); } @@ -1155,6 +1161,7 @@ public: */ sal_Int32 lastIndexOf( sal_Unicode ch, sal_Int32 fromIndex ) const { + assert( fromIndex >= 0 && fromIndex <= pData->length ); return rtl_ustr_lastIndexOfChar_WithLength( pData->buffer, fromIndex, ch ); } @@ -1177,6 +1184,7 @@ public: */ sal_Int32 indexOf( const OUString & str, sal_Int32 fromIndex = 0 ) const { + assert( fromIndex >= 0 && fromIndex <= pData->length ); sal_Int32 ret = rtl_ustr_indexOfStr_WithLength( pData->buffer+fromIndex, pData->length-fromIndex, str.pData->buffer, str.pData->length ); return (ret < 0 ? ret : ret+fromIndex); @@ -1242,6 +1250,7 @@ public: */ sal_Int32 lastIndexOf( const OUString & str, sal_Int32 fromIndex ) const { + assert( fromIndex >= 0 && fromIndex <= pData->length ); return rtl_ustr_lastIndexOfStr_WithLength( pData->buffer, fromIndex, str.pData->buffer, str.pData->length ); } |