]> jfr.im git - irc/irssi/irssi.git/commitdiff
fix recursive crash in Perl scripts
authorAilin Nemui <redacted>
Fri, 13 Aug 2021 15:32:09 +0000 (17:32 +0200)
committerAilin Nemui <redacted>
Fri, 13 Aug 2021 15:32:09 +0000 (17:32 +0200)
src/perl/perl-signals.c
src/perl/perl-sources.c

index 897689e185b76f47b942d5715a3d51fc9478f4ca..683b4c3f5dad254ff40ba2a8ed7b21564d24e96c 100644 (file)
@@ -419,6 +419,7 @@ static void perl_call_signal(PERL_SCRIPT_REC *script, SV *func,
 
        if (SvTRUE(ERRSV)) {
                char *error = g_strdup(SvPV_nolen(ERRSV));
+               perl_signal_remove_script(script);
                signal_emit("script error", 2, script, error);
                 g_free(error);
                 rec = NULL;
index 9f5773f18c3ffac1e307a20edf56bb6cab6c3ecc..9f9ec6b50a720af57501b2683379d136adce5334 100644 (file)
@@ -83,6 +83,7 @@ static int perl_source_event(PERL_SOURCE_REC *rec)
 
        if (SvTRUE(ERRSV)) {
                 char *error = g_strdup(SvPV_nolen(ERRSV));
+               perl_source_remove_script(rec->script);
                signal_emit("script error", 2, rec->script, error);
                 g_free(error);
        }