From c169f76613276ae4ccf7d8f726bcfb7321e81248 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 28 Apr 2021 23:29:37 +0100 Subject: [PATCH] cmdlistener: Do not allow resizing the table so pieces fall outside Signed-off-by: Ian Jackson --- daemon/cmdlistener.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/daemon/cmdlistener.rs b/daemon/cmdlistener.rs index 1e2b8368..55d128fe 100644 --- a/daemon/cmdlistener.rs +++ b/daemon/cmdlistener.rs @@ -377,6 +377,9 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>( MGI::SetTableSize(size) => { let ig = cs.check_acl(ag, ig, PCH::Instance, &[TP::ChangePieces])?.0; + for p in ig.gs.pieces.values() { + p.pos.clamped(size).map_err(|_| SpecError::PosOffTable)?; + } ig.gs.table_size = size; (U{ pcs: vec![], log: vec![ LogEntry { -- 2.30.2