bc7de8351d
The issue is to access an invalid memory. The reason is that: DBusClientCall creates a CallbackData for each dbus call. The CallbackData itself references the DBusClientCall object. This object is used to get returned value once the dbus call returns. However, the typical usage is that DBusClientCall object is a local variable allocated on the stack. So it is invalid after existing the stack frame. If using this object in the dbus call handler, cause a severe problem of reading invalid memory. The solution is to store an always alive connection object in the CallbackData instead of DBusClientCall object. |
||
---|---|---|
.. | ||
test | ||
debug.c | ||
debug.h | ||
gdbus-cxx-bridge.h | ||
gdbus-cxx.h | ||
gdbus.h | ||
mainloop.c | ||
Makefile.am | ||
object.c | ||
README | ||
watch.c |
This is a copy of the libgdbus source code: http://git.kernel.org/?p=bluetooth/libgdbus.git;a=summary It is licensed under LGPL v2.1, see upstream COPYING. The source is included here because there is no stable upstream release. Patches added here need to be submitted upstream. Likewise, patches applied upstream must be imported. The build/import-gdbus.sh and build/export-gdbus.sh scripts automate that process. To import fixes from upstream: - checkout out libgdbus and syncevolution - enter syncevolution directory - if not done before, create local "gdbus" branch: git branch gdbus origin/gdbus - run build/import-gdbus.sh - "gdbus" branch is now checked out and updated - verify changes, merge into master, etc. - push into remote syncevolution repo To export fixes to upstream: - check out relevant branch in syncevolution which has our local changes (typically "master") - run build/export-gdbus.sh - send 0*.patch files to upstream Caveats: - only files explicitly mentioned in the two scripts are imported/exports - Makefile changes are only imported, but not exported (local changes not relevant upstream)