Skip to content

Fix atomvm:read_priv and detect truncated packs#2340

Open
bettio wants to merge 3 commits into
atomvm:release-0.7from
bettio:fix-read_priv
Open

Fix atomvm:read_priv and detect truncated packs#2340
bettio wants to merge 3 commits into
atomvm:release-0.7from
bettio:fix-read_priv

Conversation

@bettio

@bettio bettio commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

The packbeam (.avm) scanners were unbounded and trusted section sizes,
so a lookup miss (e.g. atomvm:read_priv/2 for an unpacked file) ran off
the pack into erased flash and crashed the VM. A truncated pack failed
the same way.

Bound and validate every scan, detect truncation at load, and add a
build-time guard for the one pack known at build time. No on-disk
format change.

These changes are made under both the "Apache 2.0" and the "GNU Lesser General
Public License 2.1 or later" license terms (dual license).

SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later

bettio added 3 commits June 22, 2026 16:56
The packbeam scanners were unbounded, so a lookup miss (e.g. read_priv
for an unpacked file) ran off the pack into erased flash and crashed.
Bound and validate every scan against the stored pack size.

Signed-off-by: Davide Bettio <davide@uninstall.it>
Reject truncated or incomplete packs (e.g. an image flashed to a
too-small partition) at load instead of failing late, validating by
tail check or bounded walk.

Signed-off-by: Davide Bettio <davide@uninstall.it>
Fail at configure time when boot.avm does not fit its partition.

Signed-off-by: Davide Bettio <davide@uninstall.it>
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

Successfully merging this pull request may close these issues.

1 participant