null-ok parameter annotation not correctly handled for virtual methods
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pygobject |
Fix Released
|
Critical
|
|||
pygobject (Ubuntu) |
Fix Released
|
Low
|
Unassigned | ||
Lucid |
Won't Fix
|
Low
|
Unassigned |
Bug Description
Steps to reproduce:
1. Create a Python class which implement an interface which contains a method
with null-ok string parameter (gtk.Buildable.
2. Call this method from C with a null parameter (or use gtk.Builder in our
case)
3. application crashes with a segfault in the corresponding proxy method.
Test case:
1. Use upstream head Rhythmbox, or lucid Rhythmbox with patch from https:/
2. Add a trivial Python plugin that implements do_impl_
3. Run "rhythmbox testurl:
4. Rhythmbox segfaults.
Code for example trivial Python plugin:
import rb, gobject
class ExampleURI(
def activate(self, shell):
self.source = gobject.
def deactivate(self, shell):
class MySource(
__gproperties__ = {
'plugin': (rb.Plugin, 'plugin', 'plugin',
}
def do_impl_
if uri.startswith(
return 0
def do_impl_
if not uri.startswith(
print "Hi! The testcase plugin got a uri: %s" % uri
return True
Related branches
Changed in pygobject (Ubuntu): | |
importance: | Undecided → Low |
status: | New → Fix Committed |
Changed in pygobject (Ubuntu Lucid): | |
importance: | Undecided → Low |
status: | New → Triaged |
Changed in pygobject: | |
status: | Unknown → New |
Changed in pygobject: | |
status: | New → Fix Released |
Changed in pygobject: | |
importance: | Unknown → Critical |
This bug was fixed in the package pygobject - 2.21.1-1ubuntu1
---------------
pygobject (2.21.1-1ubuntu1) maverick; urgency=low
* Resync on Debian patches/ 80_no_pygi_ error.patch: patches/ 90_virtual_ methods_ handling. patch:
* debian/control.in, debian/rules:
- don't use a specific python version
* debian/
- don't raise pygi error since the package is built without that option
which is something the code handles correctly (lp: #607674)
* debian/
- bugzilla change to fix a crashed on virtual method use (lp: #588694)
pygobject (2.21.1-1) unstable; urgency=low
[ Josselin Mouette ] introspection- *.
* Suggest gir1.0-glib-2.0 instead of gobject-
[ Loïc Minier ]
* Split out make check runs in their own targets.
* Also make check the dbg builds.
* Don't make check when nocheck is in DEB_BUILD_OPTIONS; thanks
Daniel Schepler.
[ Emilio Pozuelo Monfort ] patches/ 64_gil_ locking. patch:
* debian/
- Add header.
[ Josselin Mouette ] fctnl-and- read.patch: dropped, merged upstream.
* New upstream release.
* Introspection stuff has been moved to pygi.
* 61_wakeupfd-
* 90_autofoo.patch: regenerated.
pygobject (2.20.0-1) unstable; urgency=low
[ Emilio Pozuelo Monfort ]
* python-gobject-dbg is section debug.
[ Josselin Mouette ] lib/python- support. 1.0-dev.
* New upstream release.
* Switch installation path to /usr/lib/pymodules instead of
/var/
* Enable girepository support; build-depend on libgirepository
* Suggest some introspection packages.
* 90_autofoo.patch: regenerated for the new version.
pygobject (2.18.0-1) unstable; urgency=low
* Fix English mistake in long descriptions. Closes: #524545. private. patch, install- pyglib- in-libdir- with-python- version. patch:
* New upstream release.
+ Fixes argument passing for glib.IOChannel. Closes: #528459.
* 01_pkgconfig-
62_
dropped, merged upstream.
* 90_autofoo.patch: regenerated.
-- Sebastien Bacher <email address hidden> Wed, 02 Jun 2010 18:35:17 +0200