From c4e989685179fbe463d138834f71375e94e0fbad Mon Sep 17 00:00:00 2001 From: tron Date: Wed, 17 Nov 2004 17:15:36 +0000 Subject: [PATCH] (svn r658) Ignore callbackish randomized spritegroups - they would just crash us (pasky) --- grfspecial.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/grfspecial.c b/grfspecial.c index 4809af5d12..7141a67819 100644 --- a/grfspecial.c +++ b/grfspecial.c @@ -1212,6 +1212,13 @@ static void NewSpriteGroup(byte *buf, int len) rg->groups = calloc(rg->num_groups, sizeof(*rg->groups)); for (i = 0; i < rg->num_groups; i++) { uint16 groupid = grf_load_word(&buf); + + if (groupid & 0x8000 || groupid >= _cur_grffile->spritegroups_count) { + /* This doesn't exist for us. */ + i--; + rg->num_groups--; + continue; + } /* XXX: If multiple surreal sets attach a surreal * set this way, we are in trouble. */ rg->groups[i] = _cur_grffile->spritegroups[groupid];