mirror of
https://github.com/hufrea/byedpi.git
synced 2024-12-22 14:25:44 +00:00
Merge pull request #34 from dartvader316/fix-misaligned
Fix usage of some misaligned pointers
This commit is contained in:
commit
4ca7fab3dd
2
extend.c
2
extend.c
@ -90,7 +90,7 @@ int mode_add_get(struct sockaddr_ina *dst, int m)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline bool check_port(uint16_t *p, struct sockaddr_in6 *dst)
|
static inline bool check_port(uint16_t *p, struct sockaddr_in6 *dst)
|
||||||
{
|
{
|
||||||
return (dst->sin6_port >= p[0]
|
return (dst->sin6_port >= p[0]
|
||||||
&& dst->sin6_port <= p[1]);
|
&& dst->sin6_port <= p[1]);
|
||||||
|
16
packets.c
16
packets.c
@ -17,6 +17,10 @@
|
|||||||
#define ANTOHS(data, i) \
|
#define ANTOHS(data, i) \
|
||||||
(uint16_t)((data[i] << 8) + (uint8_t)data[i + 1])
|
(uint16_t)((data[i] << 8) + (uint8_t)data[i + 1])
|
||||||
|
|
||||||
|
#define SHTONA(data, i, x) \
|
||||||
|
data[i] = (uint8_t)(x >> 8); \
|
||||||
|
data[i + 1] = x & 0xff;
|
||||||
|
|
||||||
|
|
||||||
char tls_data[517] = {
|
char tls_data[517] = {
|
||||||
"\x16\x03\x01\x02\x00\x01\x00\x01\xfc\x03\x03\x03\x5f"
|
"\x16\x03\x01\x02\x00\x01\x00\x01\xfc\x03\x03\x03\x5f"
|
||||||
@ -137,10 +141,10 @@ 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);
|
SHTONA(sni, 2, old_sz + diff + 5);
|
||||||
*(uint16_t *)(sni + 4) = htons(old_sz + diff + 3);
|
SHTONA(sni, 4, old_sz + diff + 3);
|
||||||
*(uint16_t *)(sni + 7) = htons(old_sz + diff);
|
SHTONA(sni, 7, old_sz + diff);
|
||||||
*(uint16_t *)(pad + 2) = htons(free_sz - diff);
|
SHTONA(pad, 2, free_sz - diff);
|
||||||
|
|
||||||
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,7 @@ 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);
|
SHTONA(buffer, 3, pos);
|
||||||
*(uint16_t *)(buffer + 5 + pos + 3) = htons(r_sz - pos);
|
SHTONA(buffer, 5 + pos + 3, r_sz - pos);
|
||||||
return 5;
|
return 5;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user