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
rxvt-unicode@lists.schmorp.de
http://lists.schmorp.de/mailman/listinfo/rxvt-unicode

Reply via email to