xmlhelp/source/cxxhelp/provider/urlparameter.hxx |   15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

New commits:
commit 3434aceb1cdb306c339201e9e67d3920b338f9b3
Author: Caolán McNamara <caol...@redhat.com>
Date:   Mon Aug 11 11:27:53 2014 +0100

    Resolves: fdo#82025 use strlen instead of stored length byte
    
    Change-Id: I58cf2391d7bf2480cd12d2b1b4cf73f346f4f95f
    (cherry picked from commit ad40561d13e004ca4c532afb406675eea3c6a663)
    Reviewed-on: https://gerrit.libreoffice.org/10878
    Reviewed-by: David Tardon <dtar...@redhat.com>
    Tested-by: David Tardon <dtar...@redhat.com>
    Reviewed-by: Michael Stahl <mst...@redhat.com>
    Reviewed-by: Eike Rathke <er...@redhat.com>

diff --git a/xmlhelp/source/cxxhelp/provider/urlparameter.hxx 
b/xmlhelp/source/cxxhelp/provider/urlparameter.hxx
index ba8f29c..05bca6d 100644
--- a/xmlhelp/source/cxxhelp/provider/urlparameter.hxx
+++ b/xmlhelp/source/cxxhelp/provider/urlparameter.hxx
@@ -43,7 +43,6 @@ namespace chelp {
         {
         }
 
-
         OUString getHash()
         {
             if( m_ptr )
@@ -88,11 +87,15 @@ namespace chelp {
             if( ! m_ptr )
                 return OUString();
 
-            sal_Int32 sizeOfTitle =
-                ( sal_Int32 ) m_ptr[  2 + m_ptr[0] +  ( sal_Int32 ) m_ptr[ 1+ 
( sal_Int32 ) m_ptr[0] ] ];
-            return OUString( m_ptr + 3 + m_ptr[0] +  ( sal_Int32 ) m_ptr[ 1+ ( 
sal_Int32 ) m_ptr[0] ],
-                                  sizeOfTitle,
-                                  RTL_TEXTENCODING_UTF8 );
+            //fdo#82025 - use strlen instead of stored length byte to 
determine string len
+            //There is a one byte length field at m_ptr[2 + m_ptr[0] +  m_ptr[1
+            //+ m_ptr[0]]] but by default sal_Char is signed so anything larger
+            //than 127 defaults to a negative value, casting it would allow up
+            //to 255 but instead make use of the null termination to avoid
+            //running into a later problem with strings >= 255
+            const sal_Char* pTitle = m_ptr + 3 + m_ptr[0] +  ( sal_Int32 ) 
m_ptr[ 1+ ( sal_Int32 ) m_ptr[0] ];
+
+            return OUString(pTitle, rtl_str_getLength(pTitle), 
RTL_TEXTENCODING_UTF8);
         }
 
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to