[umbrello] [Bug 445119] Issues with code ignoring and possibly dereferencing nullptr

Oliver Kellogg bugzilla_noreply at kde.org
Tue Nov 23 20:30:19 GMT 2021


https://bugs.kde.org/show_bug.cgi?id=445119

Oliver Kellogg <okellogg at users.sourceforge.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |okellogg at users.sourceforge.
                   |                            |net

--- Comment #5 from Oliver Kellogg <okellogg at users.sourceforge.net> ---
(In reply to Robert Hairgrove from comment #0)
> Using Umbrello from Git/master:
> 
> In file "component.cpp" at line 58 in the method
> "UMLComponent::saveToXMI1()":
> 
>   for (UMLObjectListIt objectsIt(m_objects); objectsIt.hasNext();) {
>       UMLObject* obj = objectsIt.next();
>       uIgnoreZeroPointer(obj);
>       obj->saveToXMI1 (writer);
>   }
> 
> What happens if "obj" == nullptr? A warning is emitted by
> "uIgnoreZeroPointer", but "obj" is dereferenced after that anyway, which
> causes undefined behavior according to the C++ standard.

Looking at the definition of uIgnoreZeroPointer, in
umbrello/debug/debug_utils.h :
#define uIgnoreZeroPointer(a) if (!a) { uDebug() << "zero pointer detected" <<
__FILE__ << __LINE__; continue; }

The `continue` statement means that the null pointer will not be accessed.

Just a minor point... not to detract from the question of why lists contain
null pointers at all.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the umbrello-devel mailing list