diff options
author | Caolán McNamara <caolanm@redhat.com> | 2013-09-12 12:31:43 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-09-12 13:09:05 +0100 |
commit | dbff5bd4cd4eec4db844244d5ff431a3f2b1b82e (patch) | |
tree | 2712871a036c84ce76d07f94f7b5ce54601f4c33 /basic | |
parent | 463bf0870ade53e5dee3b95605f2c1d9898ca410 (diff) |
CID#736166 unlikely out of bounds
Change-Id: I8a0f97be1723766df9f8fe287417365febf54966
Diffstat (limited to 'basic')
-rw-r--r-- | basic/source/comp/symtbl.cxx | 5 | ||||
-rw-r--r-- | basic/source/inc/parser.hxx | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/basic/source/comp/symtbl.cxx b/basic/source/comp/symtbl.cxx index 0a5e3a22c04c..fccc044805f0 100644 --- a/basic/source/comp/symtbl.cxx +++ b/basic/source/comp/symtbl.cxx @@ -350,7 +350,10 @@ void SbiSymDef::SetType( SbxDataType t ) unsigned char c = (unsigned char)ch2; if( c > 0 && c < 128 ) { - t = pIn->pParser->eDefTypes[ ch2 - 'A' ]; + int nIndex = ch2 - 'A'; + assert(nIndex >= 0 && nIndex < N_DEF_TYPES); + if (nIndex >= 0 && nIndex < N_DEF_TYPES) + t = pIn->pParser->eDefTypes[nIndex]; } } } diff --git a/basic/source/inc/parser.hxx b/basic/source/inc/parser.hxx index a6f3751d8c57..27bb4fb0104f 100644 --- a/basic/source/inc/parser.hxx +++ b/basic/source/inc/parser.hxx @@ -77,7 +77,8 @@ public: bool bClassModule; // true: OPTION ClassModule StringVector aIfaceVector; // Holds all interfaces implemented by a class module StringVector aRequiredTypes; // Types used in Dim As New <type> outside subs - SbxDataType eDefTypes[26]; // DEFxxx data types +# define N_DEF_TYPES 26 + SbxDataType eDefTypes[N_DEF_TYPES]; // DEFxxx data types SbiParser( StarBASIC*, SbModule* ); bool Parse(); |