34 lines
1,011 B
C
34 lines
1,011 B
C
# Origin: https://github.com/jedisct1/dnscrypt-proxy/commit/a193c6ff1ca2b24bb283f0d64bf8f5faefc0def1
|
|
# Subject: Repair edns0 support
|
|
|
|
--- src/proxy/edns.c.orig 2016-02-02 15:42:19 UTC
|
|
+++ src/proxy/edns.c
|
|
@@ -10,7 +10,7 @@
|
|
#include "dnscrypt_proxy.h"
|
|
#include "edns.h"
|
|
|
|
-#define DNS_MAX_HOSTNAME_LEN 255U
|
|
+#define DNS_MAX_HOSTNAME_LEN 256U
|
|
|
|
static int
|
|
_skip_name(const uint8_t * const dns_packet, const size_t dns_packet_len,
|
|
@@ -26,9 +26,6 @@ _skip_name(const uint8_t * const dns_pac
|
|
}
|
|
for (;;) {
|
|
name_component_len = dns_packet[offset];
|
|
- if (name_component_len == 0U) {
|
|
- break;
|
|
- }
|
|
if ((name_component_len & 0xC0) == 0xC0) {
|
|
name_component_len = 1U;
|
|
}
|
|
@@ -40,6 +37,9 @@ _skip_name(const uint8_t * const dns_pac
|
|
return -1;
|
|
}
|
|
offset += name_component_len + 1U;
|
|
+ if (name_component_len == 0U) {
|
|
+ break;
|
|
+ }
|
|
}
|
|
if (offset >= dns_packet_len) {
|
|
return -1;
|