From f997c9fb5078d529f61eecb19f6b8ad0fc15314e Mon Sep 17 00:00:00 2001 From: Markus Mohrhard Date: Sun, 28 Dec 2014 20:16:17 +0100 Subject: check size before looking into the string MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Found by Asan. e.g moz233272-2.xpm Change-Id: Ic563db41dbd4ce7250492e99f3e48a203cfdcf00 Reviewed-on: https://gerrit.libreoffice.org/13686 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara (cherry picked from commit ba4b5741db25ff3b76a8d10d8f3745dfc1973749) (cherry picked from commit cda3b8767fd8f5b43b1043852e9f90fd17a129f4) --- vcl/source/filter/ixpm/xpmread.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vcl/source/filter/ixpm/xpmread.cxx b/vcl/source/filter/ixpm/xpmread.cxx index 3a8597840f2b..ff42c2a8943b 100644 --- a/vcl/source/filter/ixpm/xpmread.cxx +++ b/vcl/source/filter/ixpm/xpmread.cxx @@ -23,6 +23,7 @@ #include "rgbtable.hxx" #define _XPMPRIVATE #include "xpmread.hxx" +#include // ------------- // - XPMReader - @@ -348,7 +349,8 @@ bool XPMReader::ImplGetColSub( sal_uInt8* pDest ) { if ( pRGBTable[ i ].name == NULL ) break; - if ( pRGBTable[ i ].name[ mnParaSize ] == 0 ) + if ( std::strlen(pRGBTable[i].name) > mnParaSize && + pRGBTable[ i ].name[ mnParaSize ] == 0 ) { if ( ImplCompare ( (unsigned char*)pRGBTable[ i ].name, mpPara, mnParaSize, XPMCASENONSENSITIVE ) ) -- cgit v1.2.3