Blob Blame History Raw
From aa04efe74b865de83e63846873e83e5b1b91d71e Mon Sep 17 00:00:00 2001
Message-Id: <aa04efe74b865de83e63846873e83e5b1b91d71e.1435267199.git.erack@redhat.com>
From: Eike Rathke <erack@redhat.com>
Date: Thu, 25 Jun 2015 20:06:47 +0200
Subject: [PATCH] a singleton must be fully parsed to be valid, tdf#44419
 related
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"

This is a multi-part message in MIME format.
--------------erAck-patch-parts
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit


No trailing characters must be present in 1:1 or A:A full row/column
references, e.g. 2:2,2 is not valid. The original cause is the lexical
analyzer that accepted 2,2 as the second part after the range operator
because ',' is also the group separator here, which needs further
changes.

Change-Id: Iff354469f7dcb4e0b6fa645c39cc1f8ebad4a6ea
(cherry picked from commit c48af2b55a60492565b987ee65d98edc6bd94533)
Reviewed-on: https://gerrit.libreoffice.org/16490
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
---
 sc/source/core/tool/address.cxx | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


--------------erAck-patch-parts
Content-Type: text/x-patch; name="0001-a-singleton-must-be-fully-parsed-to-be-valid-tdf-444.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-a-singleton-must-be-fully-parsed-to-be-valid-tdf-444.patch"

diff --git a/sc/source/core/tool/address.cxx b/sc/source/core/tool/address.cxx
index ef3baad..96d7812 100644
--- a/sc/source/core/tool/address.cxx
+++ b/sc/source/core/tool/address.cxx
@@ -916,7 +916,7 @@ static sal_uInt16 lcl_ScRange_Parse_XL_A1( ScRange& r,
 
         tmp1 = lcl_eatWhiteSpace( tmp1 );
         tmp2 = lcl_a1_get_row( tmp1, &r.aEnd, &nFlags2 );
-        if( !tmp2 )
+        if( !tmp2 || *tmp2 != 0 )   // Must have fully parsed a singleton.
             return 0;
 
         r.aStart.SetCol( 0 ); r.aEnd.SetCol( MAXCOL );
@@ -939,7 +939,7 @@ static sal_uInt16 lcl_ScRange_Parse_XL_A1( ScRange& r,
 
         tmp1 = lcl_eatWhiteSpace( tmp1 );
         tmp2 = lcl_a1_get_col( tmp1, &r.aEnd, &nFlags2 );
-        if( !tmp2 )
+        if( !tmp2 || *tmp2 != 0 )   // Must have fully parsed a singleton.
             return 0;
 
         r.aStart.SetRow( 0 ); r.aEnd.SetRow( MAXROW );

--------------erAck-patch-parts--