minissdp: Harden SSDP request parsing
Avoids a potential crash from malformed header.
This commit is contained in:
parent
1d363c209f
commit
b4e55102af
10
minissdp.c
10
minissdp.c
@ -552,27 +552,27 @@ ProcessSSDPRequest(struct event *ev)
|
|||||||
if (strncasecmp(bufr+i, "SERVER:", 7) == 0)
|
if (strncasecmp(bufr+i, "SERVER:", 7) == 0)
|
||||||
{
|
{
|
||||||
srv = bufr+i+7;
|
srv = bufr+i+7;
|
||||||
while (*srv == ' ' || *srv == '\t')
|
while (*srv && (*srv == ' ' || *srv == '\t'))
|
||||||
srv++;
|
srv++;
|
||||||
}
|
}
|
||||||
else if (strncasecmp(bufr+i, "LOCATION:", 9) == 0)
|
else if (strncasecmp(bufr+i, "LOCATION:", 9) == 0)
|
||||||
{
|
{
|
||||||
loc = bufr+i+9;
|
loc = bufr+i+9;
|
||||||
while (*loc == ' ' || *loc == '\t')
|
while (*loc && (*loc == ' ' || *loc == '\t'))
|
||||||
loc++;
|
loc++;
|
||||||
while (loc[loc_len]!='\r' && loc[loc_len]!='\n')
|
while (loc[loc_len] && (loc[loc_len]!='\r' && loc[loc_len]!='\n'))
|
||||||
loc_len++;
|
loc_len++;
|
||||||
}
|
}
|
||||||
else if (strncasecmp(bufr+i, "NTS:", 4) == 0)
|
else if (strncasecmp(bufr+i, "NTS:", 4) == 0)
|
||||||
{
|
{
|
||||||
nts = bufr+i+4;
|
nts = bufr+i+4;
|
||||||
while (*nts == ' ' || *nts == '\t')
|
while (*nts && (*nts == ' ' || *nts == '\t'))
|
||||||
nts++;
|
nts++;
|
||||||
}
|
}
|
||||||
else if (strncasecmp(bufr+i, "NT:", 3) == 0)
|
else if (strncasecmp(bufr+i, "NT:", 3) == 0)
|
||||||
{
|
{
|
||||||
nt = bufr+i+3;
|
nt = bufr+i+3;
|
||||||
while(*nt == ' ' || *nt == '\t')
|
while(*nt && (*nt == ' ' || *nt == '\t'))
|
||||||
nt++;
|
nt++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user