Fix strncpy nodenum length overflow

This commit is contained in:
mazmazz 2018-12-17 21:31:00 -05:00
parent 876ddd48f1
commit 1fcf607b41

View file

@ -459,7 +459,7 @@ static void DoSayCommand(SINT8 target, size_t usedargs, UINT8 flags)
char *nodenum = (char*) malloc(3);
INT32 spc = 1; // used if nodenum[1] is a space.
strncpy(nodenum, msg+3, 5);
strncpy(nodenum, msg+3, 3);
// check for undesirable characters in our "number"
if (((nodenum[0] < '0') || (nodenum[0] > '9')) || ((nodenum[1] < '0') || (nodenum[1] > '9')))
{
@ -953,7 +953,7 @@ static void HU_queueChatChar(char c)
return;
}
strncpy(nodenum, msg+3, 5);
strncpy(nodenum, msg+3, 3);
// check for undesirable characters in our "number"
if (((nodenum[0] < '0') || (nodenum[0] > '9')) || ((nodenum[1] < '0') || (nodenum[1] > '9')))
{
@ -1692,7 +1692,7 @@ static void HU_DrawChat(void)
nodenum = (char*) malloc(3);
strncpy(nodenum, w_chat+3, 4);
strncpy(nodenum, w_chat+3, 3);
n = atoi((const char*) nodenum); // turn that into a number
// special cases: