mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-30 00:00:16 +01:00
lws_hdr_copy: protect against garbage
This commit is contained in:
parent
d30597f728
commit
462e449cd6
1 changed files with 6 additions and 2 deletions
|
@ -570,11 +570,15 @@ LWS_VISIBLE int lws_hdr_copy(struct lws *wsi, char *dst, int len,
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
strcpy(dst,
|
if (wsi->u.hdr.ah->frags[n].len >= len)
|
||||||
&wsi->u.hdr.ah->data[wsi->u.hdr.ah->frags[n].offset]);
|
return -1;
|
||||||
|
strncpy(dst, &wsi->u.hdr.ah->data[wsi->u.hdr.ah->frags[n].offset],
|
||||||
|
wsi->u.hdr.ah->frags[n].len);
|
||||||
dst += wsi->u.hdr.ah->frags[n].len;
|
dst += wsi->u.hdr.ah->frags[n].len;
|
||||||
|
len -= wsi->u.hdr.ah->frags[n].len;
|
||||||
n = wsi->u.hdr.ah->frags[n].nfrag;
|
n = wsi->u.hdr.ah->frags[n].nfrag;
|
||||||
} while (n);
|
} while (n);
|
||||||
|
*dst = '\0';
|
||||||
|
|
||||||
return toklen;
|
return toklen;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue