Subject: | list_dictionaries() fails to extend the stack |
The XS code for list_dictionaries() pushes items on the stack without extending it.
Changing:
PUSHs(sv_2mortal(newSVpv( dictname ,0 )));
to
XPUSHs(sv_2mortal(newSVpv( dictname ,0 )));
fixes this.
Without this list_dictionaries() can potentially write beyond the end of an allocated block.
Related to https://rt.perl.org/Ticket/Display.html?id=131938
Tony