MEM-005: HUNK renderers index text by unvalidated token offsets (dog/HUNK.c)

Now
DONE

Every HUNK renderer treats tok32Offset(...) (a 27-bit value taken verbatim from the wire) as a byte index into hk->text, but the TXT ('X') and TOK ('K') TLV records are drained independently with no cross-check, so a relayed/received hunk whose token offsets exceed the text length drives a$part/pointer-walk reads past hk->text. Separately the 'K' value bytes are aliased directly as tok32c*, an unaligned-load + length-mismatch hazard. The goal is to validate (and align) the token record once at drain time so all renderers inherit a safe invariant.

Issues

Untrusted token offsets are never bounded to $len(hk->text); toks bytes are aliased unaligned.

Blockers

None.

Planned

Centralize a drain-time validation+alignment, then drop the per-renderer trust.