summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorFarow <farow_spam@lavabit.com>2013-10-09 11:33:10 +0300
committerTingPing <tingping@tingping.se>2013-10-13 14:26:54 -0400
commitfd13e4046f508e9ebe4eb463966ff2858f053cdd (patch)
treec46e5c9f001983bb331439d696b8af42e24f8c57
parent1b07c0f54b236c458ab24f1383c2f9826285a4c4 (diff)
Perl: fixed crash when a script exits abnormally
-rw-r--r--plugins/perl/perl.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/plugins/perl/perl.c b/plugins/perl/perl.c
index f3ce8883..76722f7f 100644
--- a/plugins/perl/perl.c
+++ b/plugins/perl/perl.c
@@ -408,7 +408,7 @@ timer_cb (void *userdata)
 	}
 
 	set_current_package (data->package);
-	count = call_sv (data->callback, G_EVAL);
+	count = call_sv (data->callback, G_EVAL | G_KEEPERR);
 	set_current_package (&PL_sv_undef);
 	SPAGAIN;
 
@@ -467,7 +467,7 @@ server_cb (char *word[], char *word_eol[], void *userdata)
 
 	data->depth++;
 	set_current_package (data->package);
-	count = call_sv (data->callback, G_EVAL);
+	count = call_sv (data->callback, G_EVAL | G_KEEPERR);
 	set_current_package (&PL_sv_undef);
 	data->depth--;
 	SPAGAIN;
@@ -516,7 +516,7 @@ command_cb (char *word[], char *word_eol[], void *userdata)
 
 	data->depth++;
 	set_current_package (data->package);
-	count = call_sv (data->callback, G_EVAL);
+	count = call_sv (data->callback, G_EVAL | G_KEEPERR);
 	set_current_package (&PL_sv_undef);
 	data->depth--;
 	SPAGAIN;
@@ -592,7 +592,7 @@ print_cb (char *word[], void *userdata)
 
 	data->depth++;
 	set_current_package (data->package);
-	count = call_sv (data->callback, G_EVAL);
+	count = call_sv (data->callback, G_EVAL | G_KEEPERR);
 	set_current_package (&PL_sv_undef);
 	data->depth--;
 	SPAGAIN;