summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mandriva.org>2009-03-19 15:33:23 +0000
committerThierry Vignaud <tv@mandriva.org>2009-03-19 15:33:23 +0000
commitb7de5430b832b84f1286f84b42958ab94c1d40b1 (patch)
tree8cd3e7e04ee6314ee2c94103d13e9302c7c984bc
parent87d501152c003070c0063d48193280dafa4c9627 (diff)
downloadcontrol-center-b7de5430b832b84f1286f84b42958ab94c1d40b1.tar
control-center-b7de5430b832b84f1286f84b42958ab94c1d40b1.tar.gz
control-center-b7de5430b832b84f1286f84b42958ab94c1d40b1.tar.bz2
control-center-b7de5430b832b84f1286f84b42958ab94c1d40b1.tar.xz
control-center-b7de5430b832b84f1286f84b42958ab94c1d40b1.zip
('navigation-requested' signal callback) fix crashing when embedded program segfaulted (#48080)
-rwxr-xr-xcontrol-center6
1 files changed, 4 insertions, 2 deletions
diff --git a/control-center b/control-center
index a4877d0b..2740eb54 100755
--- a/control-center
+++ b/control-center
@@ -938,6 +938,7 @@ foreach (@tree) {
$view->signal_connect('navigation-requested' =>
sub {
my (undef, undef, $request) = @_;
+ my $res = 'ignore';
# get the actual program ID:
my $url = $request->get_uri;
@@ -947,13 +948,14 @@ $view->signal_connect('navigation-requested' =>
# do not crash on eg: "reload":
if (!$tool_callbacks{$url}) {
warn "Warning: invalid tool name: $url\n";
- return;
+ return $res;
}
$tool_callbacks{$url}->();
# FIXME: the following code is currently useless:
# should we provide a way to kill buggy embedded programs ?
- return if $left_locked;
+ return $res if $left_locked;
warn_on_startup();
+ return $res;
});
my %icons = (