[PATCH] Fix crash on dereferencing dangling pointers
Thiago Macieira
thiago at macieira.org
Thu May 8 08:31:27 PDT 2014
Em qui 08 maio 2014, às 07:32:59, Tomaz Canabrava escreveu:
> Em 08/05/2014 01:52, "Thiago Macieira" <thiago at macieira.org> escreveu:
> > QList::first() returns a reference to an item, but that list was a
> > temporary. The list gets destroyed at the end of the statement (the
> > semi-colon), so we ended up keeping a reference to freed data (i.e., a
> > dangling pointer0
>
> I thought a constant reference keeped the object alive until the end of the
> life of the cost ref.
Only if the returned type was by value. The problem is that QList<T>::first()
returns const T &., which is a reference to an element in the list. In that
case, the reference is nothing but a pointer and we get dangling references
when the QList gets deallocated.
--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Software Architect - Intel Open Source Technology Center
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
More information about the subsurface
mailing list