diff options
author | Photon89 | 2017-02-16 14:20:51 +0100 |
---|---|---|
committer | Photon89 | 2017-02-16 14:20:51 +0100 |
commit | 3dc1d48cd550271568bf5a4c0ef1e6939fc60451 (patch) | |
tree | 0552331c1ade437011bdfc50c6b88e1987e50d35 /fix-second-instance-crash.patch | |
parent | 7cf3140eb7ae2a31582587f93adee5e0c5755bde (diff) | |
download | aur-3dc1d48cd550271568bf5a4c0ef1e6939fc60451.tar.gz |
Finally a patch which completely fixes the second instance crash!
Diffstat (limited to 'fix-second-instance-crash.patch')
-rw-r--r-- | fix-second-instance-crash.patch | 79 |
1 files changed, 52 insertions, 27 deletions
diff --git a/fix-second-instance-crash.patch b/fix-second-instance-crash.patch index df2571d11616..ec84d448694c 100644 --- a/fix-second-instance-crash.patch +++ b/fix-second-instance-crash.patch @@ -1,35 +1,60 @@ ---- bin/shutter 2017-01-04 10:56:38.404752277 +0100 -+++ bin/shutter-fixed 2017-01-04 11:15:49.794702540 +0100 -@@ -322,6 +322,12 @@ +From 380c313840dd223e5b6c35720a79c338780f42d6 Mon Sep 17 00:00:00 2001 +From: Lionel Miller <delonorm@gmail.com> +Date: Wed, 14 Dec 2016 02:31:52 +0300 +Subject: [PATCH] Fixed segfaults on Manjaro + +On Manjaro Linux, shutter would segfault whenever it would receive +a message from another running instance of itself. This was caused +by the fact that dbus did not handle correctly messages with empty +text. This patch adds an extra check to prevent that. +--- + bin/shutter | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/bin/shutter b/bin/shutter +index a0495d4..f70980c 100755 +--- a/bin/shutter ++++ b/bin/shutter +@@ -442,12 +442,14 @@ else { + #set export filename + } + elsif ( $cmd eq 'exfilename' ) { +- $sc->set_export_filename( $message->get_text ); ++ my $arg = defined $message->get ? $message->get_text : ""; ++ $sc->set_export_filename( $arg ); + + #set delay + } + elsif ( $cmd eq 'delay' ) { +- $sc->set_delay( $message->get_text ); ++ my $arg = defined $message->get ? $message->get_text : ""; ++ $sc->set_delay( $arg ); + + #set include_cursor flag + } +@@ -464,12 +466,13 @@ else { + #set nosession flag + } + elsif ( $cmd eq 'nosession' ) { +- $sc->set_no_session( $message->get_text ); ++ my $arg = defined $message->get ? $message->get_text : ""; ++ $sc->set_no_session( $arg ); - #send $cmdid - if ( defined $cmdid && defined $extra ) { -+ if (!$extra) { -+ # Quick fix to avoid segmentation fault in some environments. -+ -+ $extra = "text=>null"; -+ } -+ - $app->send_message( $cmdid, text => $extra ); - } - elsif ( defined $cmdid ) { -@@ -487,7 +493,13 @@ + #open new files + } + elsif ( $cmd eq 'fopen' ) { +- my @init_files = $message->get_uris; ++ my @init_files = defined $message->get ? $message->get_uris : (); + if ( scalar @init_files > 0 ) { + &fct_open_files(@init_files); + } +@@ -483,7 +486,8 @@ else { #take screenshot } else { - &evt_take_screenshot( 'global_keybinding', $cmd, undef, $message->get_text ); -+ my $extra = $message->get_text; -+ -+ if ( $extra eq "text=>null" ) { -+ $extra = ''; -+ } -+ -+ &evt_take_screenshot( 'global_keybinding', $cmd, undef, $extra ); ++ my $arg = defined $message->get ? $message->get_text : ""; ++ &evt_take_screenshot( 'global_keybinding', $cmd, undef, $arg ); } } -@@ -11334,3 +11346,4 @@ - B<https://bugs.launchpad.net/shutter/+filebug> - - =cut -+ |