MEM-014: LISTinsert writes to an unvalidated next index (abc/LISTx.h)

Now
DONE

LISTinsert bounds-checks only prev (if (len<prev) return LISTBADNDX); the successor next = bAtP(list,prev)->_list.next is then used directly in bAtP(list,next)->_list.prev = len, and bAtP guards only with an assert(p<buf[3]) that is compiled out in release, so a corrupt/caller-controlled next produces an out-of-bounds write past the buffer in release builds. The goal is to validate next before dereferencing it.

Issues

Successor index trusted without a bound.

Blockers

None.

Planned

Bounds-check the successor.