Hi, On Friday, 2011-09-16 16:29:57 -0700, julien2412 wrote:
> cppcheck detected this on core/cui/source/dialogs/SpellDialog.cxx > 1534 nullPointer error Possible null pointer dereference: pNewError > 1538 nullPointer error Possible null pointer dereference: pNewError > 1555 nullPointer error Possible null pointer dereference: pNewError > 1559 nullPointer error Possible null pointer dereference: pNewError > 1570 nullPointer error Possible null pointer dereference: pNewBack > 1595 nullPointer error Possible null pointer dereference: pNewError > 1751 nullPointer error Possible null pointer dereference: > pNewBackground > > I tried to understand with the first one : > 1530 TextAttrib* pNewError = NULL; > sal_uInt16 nStart = pErrorAttrLeft->GetStart(); > sal_uInt16 nEnd = pErrorAttrLeft->GetEnd(); > pTextEngine->RemoveAttrib( 0, *pErrorAttrLeft ); > 1534 SetAttrib( *pNewError, 0, nStart, ++nEnd ); > > [...] > > I found that before the commit d54c3ad1518e32938117c7e529dda375d4110888, > most (all?) of these variables were initialized. For example like this : > TextAttrib* pNewError = pErrorAttrib->GetAttr().Clone(); > > I supposed there was certainly a good reason, but I don't know how can it > works now. Of course, I wouldn't have noticed this without cppcheck report. http://cgit.freedesktop.org/libreoffice/core/commit/?id=d54c3ad1518e32938117c7e529dda375d4110888&context=6 doesn't look correct, especially with the commit message "callcatcher: replace Clone() by NULL" it doesn't make sense. I doubt callcatcher placed this into unused code. The pointer is dereferenced and the object accessed under SetAttrib(). I reverted the commit. Thanks for catching. Eike -- PGP/OpenPGP/GnuPG encrypted mail preferred in all private communication. Key ID: 0x293C05FD - 997A 4C60 CE41 0149 0DB3 9E96 2F1A D073 293C 05FD
signature.asc
Description: Digital signature
_______________________________________________ LibreOffice mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice
