Skip to content

(absvector <huge>) OOM-aborts the process instead of a catchable error (no size cap) #4

Description

@pyrex41

Summary

(absvector <huge>) is not size-capped in the interpreter path, so an absurd size triggers an out-of-memory process abort (SIGKILL) instead of a catchable Shen error. This is the shen-rust analogue of pyrex41/shen-cl#3; shen-go already caps.

Repro

(absvector 100000000000)   # tries to allocate ~100 billion slots -> OOM / SIGKILL

Observed vs expected

How it was found

The port-authored reader_fuzz::corpus_never_panics test includes (absvector 100000000000). It passes under cargo test --release (optimized) but the debug cargo test --workspace CI gate (Gate 3) was OOM-killed on it — surfacing the missing cap.

Fix

Cap absvector at 2^24 slots (~800× the largest vector the kernel itself allocates) and raise a catchable error above it, mirroring shen-go and shen-cl#3.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions