New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bleadperl breaks Devel::FindRef #16526
Comments
From @dur-randirCreated by @dur-randircommit eacbb37 free up CvPADLIST slot for XSUBs for future use broke Devel::FindRef for perls compiled with -DDEBUGGING with the perl: FindRef.xs:180: XS_Devel__FindRef_find_: Assertion While a patch for Devel::FindRef is quite trivial, I'd like to know, Perl Info
|
From @iabynOn Mon, Apr 23, 2018 at 04:52:26AM -0700, Sergey Aleynikov wrote:
I think Daniel would have to be the one to answer that question, (Since this change was in 5.22.0, I'm removing this ticket from the 5.28 -- |
The RT System itself - Status changed from 'new' to 'open' |
From @bulk88On Wed, 25 Apr 2018 03:56:42 -0700, davem wrote:
The assertion stops XS code from reading the "padlist" of an XSUB. There is no legitimate reason to read the "padlist" of an XSUB since XSUBs dont have any and the proc will probably SEGV. The padlist slot in XSUBs is used on unthreaded perl to pass a magic unique value that must round trip from the caller (IE libperl) of the XSUB, through the XSUB and back into libperl. This stops a scenario where an XS SO/DLL compiled against another perl version, is loaded by one perl (a PATH/CWD/PERL5DB/PERL5LIB/sitecustomize/@INC/didnt delete "site/lib/auto" dir when upgrading perl/copy paste XS binaries mistake), and that XS SO/DLL then loads its original compiled against libperl into the process, and takes data structs from the caller libperl and passes them to the second libperl and there is a SEGV inside the 2nd libperl. Fixing Devel::FindRef is very easy. I did see the assert failure. But it was easy to fix. case SVt_PVCV: if (padlist) and add a matching "}" after the end of "if (padlist)"'s "}". This is more crude but also works. case SVt_PVCV: if (padlist) -- |
I was able to install Devel::FindRef on a debugging build of perl 5 blead today on each of Linux and FreeBSD. Is this ticket closable? If not, what are the criteria which must be met in order to close it? Thank you very much. |
It can be closed. |
Migrated from rt.perl.org#133142 (status was 'open')
Searchable as RT133142$
The text was updated successfully, but these errors were encountered: