diff options
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 -+ |