Skip to content
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

lang/perl5.32: Capability tag fault #75

Open
gcjenkinson opened this issue Dec 10, 2022 · 0 comments
Open

lang/perl5.32: Capability tag fault #75

gcjenkinson opened this issue Dec 10, 2022 · 0 comments

Comments

@gcjenkinson
Copy link

gcjenkinson commented Dec 10, 2022

Capability tag fault building perl5.32 in miniperl. gdb reports:

Program received signal SIGPROT, CHERI protection violation.
Capability tag fault.
S_mro_get_linear_isa_dfs (my_perl=0x40dab000 [rwRW,0x40dab000-0x40dacbd0], stash=0x40e678a0, level=1) at mro_core.c:237
237	     = HvAUX(stash)->xhv_name_u.xhvnameu_name && HvENAME_HEK_NN(stash)

A brief investigation appeared to show this as being caused by the cast on line 1566 of gv.c:

   1539 HV*
   1540 Perl_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char *name, U32 namelen, I32 flags)
   1541 {
   1542     HV* stash;
   1543     HE* he;
   1544
   1545     PERL_ARGS_ASSERT_GV_STASHSVPVN_CACHED;
   1546
   1547     he = (HE *)hv_common(
   1548         PL_stashcache, namesv, name, namelen,
   1549         (flags & SVf_UTF8) ? HVhek_UTF8 : 0, 0, NULL, 0
   1550     );
   1551
   1552     if (he) {
   1553         SV *sv = HeVAL(he);
   1554         HV *hv;
   1555         assert(SvIOK(sv));
   1556         hv = INT2PTR(HV*, SvIVX(sv));
@gcjenkinson gcjenkinson changed the title lang/perl5: Capability tag fault lang/perl5.32: Capability tag fault Dec 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant