Revision history for Struct::Codec
0.03 2026-09-17
- FIXES a heap corruption when encoding an anonymous sub. The
deparser is loaded with load_module, which runs perl and can
reallocate the argument stack; the stack pointer taken before it
was then stale, and pushing the deparse arguments through it wrote
to freed memory. It surfaced only when the load triggered a
realloc, so it depended on how deep the stack already was: a bare
encode was usually fine and a sub encoded from inside a larger
program crashed at destruction. SPAGAIN after the load. Seen as a
SIGABRT/SIGSEGV in t/32-kinds.t on threaded 5.18.
- t/16-leak.t built its probe list with a regexp unconditionally,
which the codec refuses below 5.12, so the file died there on
5.10. The regexp joins the list only where it can be encoded, as
t/32 already skips it.
- A float on a perl built -Duselongdouble or -Dusequadmath kept only
what a double holds. Such a value now goes out as decimal digits
under tag 0x38, and comes back the number it was. A perl whose NV
is a double writes the same bytes as before.
- t/25-wide-nv.t.
0.01 2026-09-12
- First version.
Keyboard Shortcuts
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
gp
Go to pull requests
gi
Go to GitHub issues (only if GitHub is preferred repository)