diff --git a/pygobject-3.3.3.1-fix-segfault-with-class-interface-mismatch.patch b/pygobject-3.3.3.1-fix-segfault-with-class-interface-mismatch.patch new file mode 100644 index 0000000..39fcc4a --- /dev/null +++ b/pygobject-3.3.3.1-fix-segfault-with-class-interface-mismatch.patch @@ -0,0 +1,12 @@ +diff -up pygobject-3.3.3.1/gi/pygi-cache.c.old pygobject-3.3.3.1/gi/pygi-cache.c +--- pygobject-3.3.3.1/gi/pygi-cache.c.old 2012-06-26 13:55:44.987711357 -0400 ++++ pygobject-3.3.3.1/gi/pygi-cache.c 2012-06-26 13:56:39.242033085 -0400 +@@ -1277,6 +1277,8 @@ _args_cache_generate (GICallableInfo *ca + return_direction, + -1, + -1); ++ if (return_cache == NULL) ++ return FALSE; + + return_cache->is_skipped = g_callable_info_skip_return (callable_info); + callable_cache->return_cache = return_cache; diff --git a/pygobject3.spec b/pygobject3.spec index 2199e65..2c5e6bf 100644 --- a/pygobject3.spec +++ b/pygobject3.spec @@ -12,7 +12,7 @@ Name: pygobject3 Version: 3.3.3.1 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ and MIT Group: Development/Languages Summary: Python 2 bindings for GObject Introspection @@ -20,6 +20,11 @@ URL: https://live.gnome.org/PyGObject #VCS: git:git://git.gnome.org/pygobject Source: http://ftp.gnome.org/pub/GNOME/sources/pygobject/3.3/pygobject-%{version}.tar.xz +# Fix a segfault when dealing with a typelib file that's out-of-sync with the +# underlying code. +# Reported upstream as https://bugzilla.gnome.org/show_bug.cgi?id=678914 +Patch1: pygobject-3.3.3.1-fix-segfault-with-class-interface-mismatch.patch + ### Build Dependencies ### BuildRequires: glib2-devel >= %{glib2_version} @@ -71,6 +76,7 @@ for use in Python 3 programs. %prep %setup -q -n pygobject-%{version} +%patch1 -p1 %if 0%{?with_python3} rm -rf %{py3dir} @@ -144,6 +150,9 @@ find $RPM_BUILD_ROOT -name '*.a' -delete %endif # with_python3 %changelog +* Tue Jun 26 2012 David Malcolm - 3.3.3.1-2 +- fix a segfault when dealing with mismatched .so/typelib files + * Mon Jun 25 2012 Peter Robinson - 3.3.3.1-1 - Update to 3.3.3.1