* Fix a potential crash during parsing of SSDP alive packets.
This commit is contained in:
parent
9a9270cecf
commit
4daad1291e
@ -532,6 +532,7 @@ ProcessSSDPRequest(int s, unsigned short port)
|
|||||||
loc_len = 0;
|
loc_len = 0;
|
||||||
while(*loc == ' ' || *loc == '\t') loc++;
|
while(*loc == ' ' || *loc == '\t') loc++;
|
||||||
while(loc[loc_len]!='\r' && loc[loc_len]!='\n') loc_len++;
|
while(loc[loc_len]!='\r' && loc[loc_len]!='\n') loc_len++;
|
||||||
|
loc[loc_len] = '\0';
|
||||||
}
|
}
|
||||||
else if(strncasecmp(bufr+i, "NTS:", 4) == 0)
|
else if(strncasecmp(bufr+i, "NTS:", 4) == 0)
|
||||||
{
|
{
|
||||||
@ -541,11 +542,10 @@ ProcessSSDPRequest(int s, unsigned short port)
|
|||||||
while(man[man_len]!='\r' && man[man_len]!='\n') man_len++;
|
while(man[man_len]!='\r' && man[man_len]!='\n') man_len++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!man || (strncmp(man, "ssdp:alive", man_len) != 0))
|
if (!loc || !srv || !man || (strncmp(man, "ssdp:alive", man_len) != 0))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
loc[loc_len] = '\0';
|
|
||||||
if (strncmp(srv, "Allegro-Software-RomPlug", 24) == 0)
|
if (strncmp(srv, "Allegro-Software-RomPlug", 24) == 0)
|
||||||
{
|
{
|
||||||
/* Check if the client is already in cache */
|
/* Check if the client is already in cache */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user