Hello!
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.
-Rob Hoelz
_______________________________________________
rxvt-unicode mailing list
[email protected]
http://lists.schmorp.de/mailman/listinfo/rxvt-unicode