diff options
author | Thierry Vignaud <thierry.vignaud@gmail.com> | 2014-08-28 11:20:40 +0200 |
---|---|---|
committer | Thierry Vignaud <thierry.vignaud@gmail.com> | 2014-09-04 16:31:37 +0200 |
commit | 18a18468e1033311f3de3badf9d6e14cb5f67677 (patch) | |
tree | 212206986aa6930d547c04e1c99234f67545a341 | |
parent | 7c13acd9f28565aaa2e4ca1e9533e97ed008a044 (diff) | |
download | urpmi-18a18468e1033311f3de3badf9d6e14cb5f67677.tar urpmi-18a18468e1033311f3de3badf9d6e14cb5f67677.tar.gz urpmi-18a18468e1033311f3de3badf9d6e14cb5f67677.tar.bz2 urpmi-18a18468e1033311f3de3badf9d6e14cb5f67677.tar.xz urpmi-18a18468e1033311f3de3badf9d6e14cb5f67677.zip |
fix segfaulting when managing exceptions
we were loading gtk+2 in order to set my_gtk_main_level to
gtk_main_level
which resulted in us strange segfaults when eg trying to save a package:
$ gdb -q --args perl ./gurpmi ./coreutils-doc-8.23-1.mga5.noarch.rpm
(gdb) s
generic_exceptions_handler () at GClosure.xs:774
774 if ((*my_gtk_main_level)())
(gdb) print my_gtk_main_level
$1 = (guint (*)()) 0x7fffe75eebf0
(gdb) print *my_gtk_main_level
Cannot access memory at address 0x7fffe75eebf0
(gdb) s
Program received signal SIGSEGV, Segmentation fault.
0x00007fffe75eebf0 in ?? ()
(gdb) print gtk_main_level
$2 = {guint (void)} 0x7fffee90d650 <gtk_main_level>
-rw-r--r-- | NEWS | 2 | ||||
-rwxr-xr-x | gurpmi | 2 | ||||
-rwxr-xr-x | gurpmi2 | 2 |
3 files changed, 4 insertions, 2 deletions
@@ -2,6 +2,8 @@ - bump split-length from 8 to 50 improves installing gnome in a chroot from 14m to 11m - update bash completion +- gurpmi: + o fix segfaulting when managing exceptions - fix some warnings with perl 5.20 Version 7.31 - 24 January 2014 @@ -17,7 +17,7 @@ use gurpmi; use urpm::util 'basename'; # For other distros w/o exception support: -eval { Glib->enable_exceptions2 }; +eval { Glib->enable_exceptions3 }; if (my $err = $@) { warn "Error: $err\n"; } @@ -29,7 +29,7 @@ our $test = 0; our $use_provides = 1; # For other distros w/o exception support: -eval { Glib->enable_exceptions2 }; +eval { Glib->enable_exceptions3 }; if (my $err = $@) { warn "Error: $err\n"; } |