[Libreoffice-commits] core.git: sw/source

Stephan Bergmann sbergman at redhat.com
Thu Jan 25 15:32:48 UTC 2018


 sw/source/core/fields/authfld.cxx |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

New commits:
commit 85dfda49880dcc6676dcda5838da1c7b36215079
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Jan 23 17:16:57 2018 +0100

    Adapt odd USHRT_MAX/4 limit in FIELD_PROP_PROP_SEQ handler
    
    The code was added with 8ff71b59a7f714835e1faa2781b34b4c5b811a84 "TextField and
    FieldMaster 'Bibliography' completed", but, according to private communication
    with Oliver, that specific values was chosen rather randomly.  Still, other
    parts of the code assume m_SortKeyArr to be indexed by sal_uInt16, so use
    SAL_MAX_UINT16 here to ensure the array is not getting to big causing overflow
    in those other places.
    
    Change-Id: I18ed75ed7c88b04e174a82194ae7d93a5f7f7c76
    Reviewed-on: https://gerrit.libreoffice.org/48443
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/sw/source/core/fields/authfld.cxx b/sw/source/core/fields/authfld.cxx
index 907668df8532..35c31ecd529e 100644
--- a/sw/source/core/fields/authfld.cxx
+++ b/sw/source/core/fields/authfld.cxx
@@ -436,7 +436,10 @@ bool    SwAuthorityFieldType::PutValue( const Any& rAny, sal_uInt16 nWhichId )
             {
                 m_SortKeyArr.clear();
                 const PropertyValues* pValues = aSeq.getConstArray();
-                for(sal_Int32 i = 0; i < aSeq.getLength() && i < USHRT_MAX / 4; i++)
+                //TODO: Limiting to the first SAL_MAX_UINT16 elements of aSeq so that size of
+                // m_SortKeyArr remains in range of sal_uInt16, as GetSortKeyCount and GetSortKey
+                // still expect m_SortKeyArr to be indexed by sal_uInt16:
+                for(sal_Int32 i = 0; i < aSeq.getLength() && i < SAL_MAX_UINT16; i++)
                 {
                     const PropertyValue* pValue = pValues[i].getConstArray();
                     SwTOXSortKey aSortKey;


More information about the Libreoffice-commits mailing list