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

Robert Hairgrove bugzilla_noreply at kde.org
Wed Nov 24 08:50:10 GMT 2021


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

--- Comment #6 from Robert Hairgrove <code at roberthairgrove.com> ---
(In reply to Oliver Kellogg from comment #5)
> (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.

Thanks, Oliver -- I didn't see the "continue" statement.

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


More information about the umbrello-devel mailing list