Fix incorrect host header memmove()s. Fixes #47

This commit is contained in:
ValdikSS 2017-12-13 01:42:29 +03:00
parent 81718f1a53
commit 5f231996d4

View File

@ -513,7 +513,8 @@ int main(int argc, char *argv[]) {
/* Move one byte to the LEFT from "Host:"
* to the end of User-Agent
*/
memmove(host_addr - 1, host_addr, useragent_len);
memmove(host_addr - 1, host_addr,
(PVOID)useragent_addr + useragent_len - (PVOID)host_addr);
host_addr -= 1;
/* Put space in the end of User-Agent header */
*(char*)((PVOID)useragent_addr + useragent_len - 1) = ' ';
@ -528,7 +529,7 @@ int main(int argc, char *argv[]) {
*/
memmove((PVOID)useragent_addr + useragent_len + 1,
(PVOID)useragent_addr + useragent_len,
useragent_len - 1);
(PVOID)host_addr - 1 - ((PVOID)useragent_addr + useragent_len));
/* Put space in the end of User-Agent header */
*(char*)((PVOID)useragent_addr + useragent_len) = ' ';
should_recalc_checksum = 1;