summaryrefslogtreecommitdiff
path: root/svtools
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-12-14 22:52:07 +0000
committerCaolán McNamara <caolanm@redhat.com>2011-12-15 12:22:49 +0000
commit66c3655a07e109d88183002192410bcc9866c0f2 (patch)
tree019188e9165edc40641dd5a6836e94a64529c5d7 /svtools
parentace8398c5782caf6c5d9066b8e67afa652448954 (diff)
convert ReadCString from ByteString to OString
Nobody ever checked the return value anyway, so just return the string and use the stream state bits if necessary to find failures. Doesn't need to be a member, make a standalone function Rename it to read_zeroTerminated_uInt8s_AsO[U]String, stupid perhaps, but *shrug*, unambiguous. Drop misleading overloaded String variants use: read_zeroTerminated_uInt8s_AsOString or read_zeroTerminated_uInt8s_AsOUString added a unit test, valgrinded it, found and fixed invalid read in original implementation.
Diffstat (limited to 'svtools')
-rw-r--r--svtools/source/urlobj/inetimg.cxx9
1 files changed, 4 insertions, 5 deletions
diff --git a/svtools/source/urlobj/inetimg.cxx b/svtools/source/urlobj/inetimg.cxx
index f203fbdee4c6..fff9d170399a 100644
--- a/svtools/source/urlobj/inetimg.cxx
+++ b/svtools/source/urlobj/inetimg.cxx
@@ -73,8 +73,7 @@ sal_Bool INetImage::Read( SvStream& rIStm, sal_uLong nFormat )
{
case SOT_FORMATSTR_ID_INET_IMAGE:
{
- String sINetImg;
- rIStm.ReadCString( sINetImg, RTL_TEXTENCODING_UTF8 );
+ String sINetImg = read_zeroTerminated_uInt8s_AsOUString(rIStm, RTL_TEXTENCODING_UTF8);
xub_StrLen nStart = 0;
aImageURL = sINetImg.GetToken( 0, TOKEN_SEPARATOR, nStart );
aTargetURL = sINetImg.GetToken( 0, TOKEN_SEPARATOR, nStart );
@@ -120,11 +119,11 @@ sal_Bool INetImage::Read( SvStream& rIStm, sal_uLong nFormat )
// skip over iExtraHTML_Offset
rIStm.SeekRel( sizeof( int ) );
- rIStm.ReadCString( aImageURL, eSysCSet );
+ aImageURL = read_zeroTerminated_uInt8s_AsOUString(rIStm, eSysCSet);
if( nAltOffset )
{
rIStm.Seek( nFilePos + nAltOffset );
- rIStm.ReadCString( aAlternateText, eSysCSet );
+ aAlternateText = read_zeroTerminated_uInt8s_AsOUString(rIStm, eSysCSet);
}
else if( aAlternateText.Len() )
aAlternateText.Erase();
@@ -132,7 +131,7 @@ sal_Bool INetImage::Read( SvStream& rIStm, sal_uLong nFormat )
if( nAnchorOffset )
{
rIStm.Seek( nFilePos + nAnchorOffset );
- rIStm.ReadCString( aTargetURL, eSysCSet );
+ aTargetURL = read_zeroTerminated_uInt8s_AsOUString(rIStm, eSysCSet);
}
else if( aTargetURL.Len() )
aTargetURL.Erase();