aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--midend.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/midend.c b/midend.c
index 1a08ef6..5a9c548 100644
--- a/midend.c
+++ b/midend.c
@@ -564,10 +564,12 @@ static int newgame_undo_deserialise_read(void *ctx, void *buf, int len)
{
struct newgame_undo_deserialise_read_ctx *const rctx = ctx;
- int use = min(len, rctx->len - rctx->pos);
- memcpy(buf, rctx->ser->buf + rctx->pos, use);
- rctx->pos += use;
- return use;
+ if (len > rctx->len - rctx->pos)
+ return FALSE;
+
+ memcpy(buf, rctx->ser->buf + rctx->pos, len);
+ rctx->pos += len;
+ return TRUE;
}
struct newgame_undo_deserialise_check_ctx {