diff options
author | Sergey Aleynikov <sergey.aleynikov@gmail.com> | 2018-04-19 03:44:46 +0300 |
---|---|---|
committer | Karl Williamson <khw@cpan.org> | 2018-04-19 11:30:43 -0600 |
commit | 202cd98a669eb31ef52b1f7443dbff2683933480 (patch) | |
tree | 6cc2b4695b2566562e406ee27da9b993ed62dc80 /gv.c | |
parent | bf634d4e041c3abb5408cd1f18f1c18d298012d1 (diff) | |
download | perl-202cd98a669eb31ef52b1f7443dbff2683933480.tar.gz |
PATCH: [perl #133121] Fix crash in gv_fetchmeth_sv
S_gv_fetchmeth_internal supports its arguments being either an SV or
a (name, len) pair. But when performing an ISA traversal to get method from
a parent class, it accounted only for the latter.
Diffstat (limited to 'gv.c')
-rw-r--r-- | gv.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -804,7 +804,9 @@ S_gv_fetchmeth_internal(pTHX_ HV* stash, SV* meth, const char* name, STRLEN len, assert(cstash); - gvp = (GV**)hv_fetch(cstash, name, is_utf8 ? -(I32)len : (I32)len, 0); + gvp = (GV**)hv_common( + cstash, meth, name, len, is_utf8 ? HVhek_UTF8 : 0, HV_FETCH_JUST_SV, NULL, 0 + ); if (!gvp) { if (len > 1 && HvNAMELEN_get(cstash) == 4) { const char *hvname = HvNAME(cstash); assert(hvname); |