Commit ba78e2dd authored by Dmitry Popov's avatar Dmitry Popov Committed by David S. Miller

tcp: no md5sig option size check bug

tcp_parse_md5sig_option doesn't check md5sig option (TCPOPT_MD5SIG)
length, but tcp_v[46]_inbound_md5_hash assume that it's at least 16
bytes long.
Signed-off-by: default avatarDmitry Popov <dp@highloadlab.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e2255679
...@@ -3930,7 +3930,7 @@ u8 *tcp_parse_md5sig_option(struct tcphdr *th) ...@@ -3930,7 +3930,7 @@ u8 *tcp_parse_md5sig_option(struct tcphdr *th)
if (opsize < 2 || opsize > length) if (opsize < 2 || opsize > length)
return NULL; return NULL;
if (opcode == TCPOPT_MD5SIG) if (opcode == TCPOPT_MD5SIG)
return ptr; return opsize == TCPOLEN_MD5SIG ? ptr : NULL;
} }
ptr += opsize - 2; ptr += opsize - 2;
length -= opsize; length -= opsize;
......
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