mirror of
https://github.com/hufrea/byedpi.git
synced 2024-12-22 14:25:44 +00:00
fix usage of some misaligned pointers
This commit is contained in:
parent
fe7f949209
commit
f884b549d2
20
packets.c
20
packets.c
@ -137,10 +137,14 @@ int change_tls_sni(const char *host, char *buffer, size_t bsize)
|
|||||||
|| free_sz < diff) {
|
|| free_sz < diff) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
*(uint16_t *)(sni + 2) = htons(old_sz + diff + 5);
|
uint16_t htons_sni2 = htons(old_sz + diff + 5);
|
||||||
*(uint16_t *)(sni + 4) = htons(old_sz + diff + 3);
|
uint16_t htons_sni4 = htons(old_sz + diff + 3);
|
||||||
*(uint16_t *)(sni + 7) = htons(old_sz + diff);
|
uint16_t htons_sni7 = htons(old_sz + diff);
|
||||||
*(uint16_t *)(pad + 2) = htons(free_sz - diff);
|
uint16_t htons_pad2 = htons(old_sz - diff);
|
||||||
|
memcpy(sni + 2, &htons_sni2, sizeof(htons_sni2));
|
||||||
|
memcpy(sni + 4, &htons_sni4, sizeof(htons_sni4));
|
||||||
|
memcpy(sni + 7, &htons_sni7, sizeof(htons_sni7));
|
||||||
|
memcpy(pad + 2, &htons_pad2, sizeof(htons_pad2));
|
||||||
|
|
||||||
char *host_end = sni + 9 + old_sz;
|
char *host_end = sni + 9 + old_sz;
|
||||||
int oth_sz = bsize - (sni_offs + 9 + old_sz);
|
int oth_sz = bsize - (sni_offs + 9 + old_sz);
|
||||||
@ -410,7 +414,11 @@ int part_tls(char *buffer, size_t bsize, ssize_t n, long pos)
|
|||||||
memmove(buffer + 5 + pos + 5, buffer + 5 + pos, n - (5 + pos));
|
memmove(buffer + 5 + pos + 5, buffer + 5 + pos, n - (5 + pos));
|
||||||
memcpy(buffer + 5 + pos, buffer, 3);
|
memcpy(buffer + 5 + pos, buffer, 3);
|
||||||
|
|
||||||
*(uint16_t *)(buffer + 3) = htons(pos);
|
uint16_t htons_pos = htons(pos);
|
||||||
*(uint16_t *)(buffer + 5 + pos + 3) = htons(r_sz - pos);
|
memcpy(buffer + 3, &htons_pos, sizeof(htons_pos));
|
||||||
|
|
||||||
|
uint16_t htons_rsz_pos = htons(r_sz - pos);
|
||||||
|
memcpy(buffer + 5 + pos + 3, &htons_rsz_pos, sizeof(htons_rsz_pos));
|
||||||
|
|
||||||
return 5;
|
return 5;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user