Commit 19a442ba authored by Juliusz Chroboczek's avatar Juliusz Chroboczek

Remove class E from martian_filter.

Thanks to Dave Taht.
parent a3c6e407
...@@ -439,6 +439,7 @@ wait_for_fd(int direction, int fd, int msecs) ...@@ -439,6 +439,7 @@ wait_for_fd(int direction, int fd, int msecs)
int int
martian_prefix(const unsigned char *prefix, int plen) martian_prefix(const unsigned char *prefix, int plen)
{ {
static const unsigned char ones[4] = {0xFF, 0xFF, 0xFF, 0xFF};
return return
(plen >= 8 && prefix[0] == 0xFF) || (plen >= 8 && prefix[0] == 0xFF) ||
(plen >= 10 && prefix[0] == 0xFE && (prefix[1] & 0xC0) == 0x80) || (plen >= 10 && prefix[0] == 0xFE && (prefix[1] & 0xC0) == 0x80) ||
...@@ -446,7 +447,8 @@ martian_prefix(const unsigned char *prefix, int plen) ...@@ -446,7 +447,8 @@ martian_prefix(const unsigned char *prefix, int plen)
(prefix[15] == 0 || prefix[15] == 1)) || (prefix[15] == 0 || prefix[15] == 1)) ||
(plen >= 96 && v4mapped(prefix) && (plen >= 96 && v4mapped(prefix) &&
((plen >= 104 && (prefix[12] == 127 || prefix[12] == 0)) || ((plen >= 104 && (prefix[12] == 127 || prefix[12] == 0)) ||
(plen >= 100 && (prefix[12] & 0xE0) == 0xE0))); (plen >= 100 && (prefix[12] & 0xF0) == 0xE0) ||
(plen >= 128 && memcmp(prefix + 12, ones, 4) == 0)));
} }
int int
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment