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
Attachment:
signature.asc
Description: Digital signature