ref: dc60f531c4cd4b8a169d273cbca5081abbd3a846
parent: 9b737a8f33589592f949fdd1cd96233bab71da95
author: qwx <qwx@sciops.net>
date: Wed Sep 13 01:22:32 EDT 2023
games/doom: don't crash on invalid music selection with idmus cheat see also: https://doomwiki.org/wiki/IDMUS_requests_invalid_music
--- a/sys/src/games/doom/st_stuff.c
+++ b/sys/src/games/doom/st_stuff.c
@@ -600,21 +600,21 @@
if (gamemode == commercial)
{
- musnum = mus_runnin + (buf[0]-'0')*10 + buf[1]-'0' - 1;
+ musnum = (buf[0]-'0')*10 + buf[1]-'0' - 1;
- if (((buf[0]-'0')*10 + buf[1]-'0') > 35)
+ if (musnum < 0 || musnum > 34)
plyr->message = STSTR_NOMUS;
else
- S_ChangeMusic(musnum, 1);
+ S_ChangeMusic(mus_runnin + musnum, 1);
}
else
{
- musnum = mus_e1m1 + (buf[0]-'1')*9 + (buf[1]-'1');
+ musnum = (buf[0]-'1')*9 + buf[1]-'1';
- if (((buf[0]-'1')*9 + buf[1]-'1') > 31)
+ if (musnum < 0 || musnum > 31)
plyr->message = STSTR_NOMUS;
else
- S_ChangeMusic(musnum, 1);
+ S_ChangeMusic(mus_e1m1 + musnum, 1);
}
}
// Simplified, accepting both "noclip" and "idspispopd".
--
⑨