Hi, and thanks for your report!
On Mon, Jun 29, 2020 at 07:40:41PM -0500, Rob Hoelz <[email protected]> wrote:
> I just upgraded my system (Arch Linux) to Perl 5.32, and I noticed that urxvt
> started dropping core files upon exit. I dug into this, and it seems
> that unlike Perl 5.30 or previous versions, Perl 5.32 unconditionally calls
> getenv("PERL_DESTRUCT_LEVEL") in perl_destruct, which is called at
> atexit handler time. Because rxvt_term makes a copy of the original process
> environment which it assigns to environ, and then it frees that copy
> in its destructor when ev_run is wrapping up, this results in a
> use-after-free when perl_destruct is called, and occasionally a segfault.
>
> I patched my local rxvt-unicode package with a workaround - it just sets
> environ = rxvt_environ after ev_run returns, but maybe a better approach
> exists.
Hmm, I think the altogether better solution is to simply get rid of
~rxvt_perl_interp. Does something like this also work for you?
rxvt_perl_interp::~rxvt_perl_interp ()
{
}
i.e. simply remove all code from ~rxvt_perl_interp.
That's basically what I aim for in the next release.
--
The choice of a Deliantra, the free code+content MORPG
-----==- _GNU_ http://www.deliantra.net
----==-- _ generation
---==---(_)__ __ ____ __ Marc Lehmann
--==---/ / _ \/ // /\ \/ / [email protected]
-=====/_/_//_/\_,_/ /_/\_\
_______________________________________________
rxvt-unicode mailing list
[email protected]
http://lists.schmorp.de/mailman/listinfo/rxvt-unicode