[Gammaray-commits] [KDAB/GammaRay] 8cc375: Remove QMetaObjects from the meta objects model wh...

Volker Krause volker.krause at kdab.com
Thu Apr 20 11:45:29 CEST 2017


  Branch: refs/heads/master
  Home:   https://github.com/KDAB/GammaRay
  Commit: 8cc3751f364cc9b7059da569eec50c481f49f13a
      https://github.com/KDAB/GammaRay/commit/8cc3751f364cc9b7059da569eec50c481f49f13a
  Author: Giulio Camuffo <giulio.camuffo at kdab.com>
  Date:   2017-04-20 (Thu, 20 Apr 2017)

  Changed paths:
    M core/metaobjecttreemodel.cpp
    M core/metaobjecttreemodel.h

  Log Message:
  -----------
  Remove QMetaObjects from the meta objects model when no object is alive

This fixes a use-after-free with the qtscxml's invoke-dynamic example.
However it is not a complete fix, because it won't work correctly if
the QMetaObject is destroyed before all its objects are. There is no
way to detect that occurrence, unfortunately.

Task-Id: KDEND-128


  Commit: 1e209bec934efcecc5a94f3c09bebe049d740b22
      https://github.com/KDAB/GammaRay/commit/1e209bec934efcecc5a94f3c09bebe049d740b22
  Author: Giulio Camuffo <giulio.camuffo at kdab.com>
  Date:   2017-04-20 (Thu, 20 Apr 2017)

  Changed paths:
    M core/CMakeLists.txt
    M core/metaobjectmodel.h
    A core/metaobjectregistry.cpp
    A core/metaobjectregistry.h
    M core/metaobjecttreemodel.cpp
    M core/metaobjecttreemodel.h
    M core/probe.cpp
    M core/probe.h
    M core/tools/metaobjectbrowser/metaobjectbrowser.cpp
    M tests/CMakeLists.txt
    M tests/methodmodeltest.cpp

  Log Message:
  -----------
  Add a central bookkeeper for the QMetaObjects

QMetaObjects are accessed in various parts of the codebase, and all
these parts may access a deleted object. This patch adds a central
registry for the QMetaObjects, which can be used to check if a
given QMetaObject can be dereferenced without worrying or not.


  Commit: 21ee64ce5f07bc03023b705597eaeb8fa912a70a
      https://github.com/KDAB/GammaRay/commit/21ee64ce5f07bc03023b705597eaeb8fa912a70a
  Author: Volker Krause <volker.krause at kdab.com>
  Date:   2017-04-20 (Thu, 20 Apr 2017)

  Changed paths:
    M plugins/statemachineviewer/qscxmlstatemachinedebuginterface.cpp
    M plugins/statemachineviewer/qscxmlstatemachinedebuginterface.h

  Log Message:
  -----------
  Fix double-delete when the debugged state machine gets deleted

It also deletes the QScxmlStateMachineInfo object in that case, which we
also try to do in our dtor.


Compare: https://github.com/KDAB/GammaRay/compare/0fe4be894075...21ee64ce5f07


More information about the Gammaray-commits mailing list