提交 ba78e2dd 编写于 作者: D Dmitry Popov 提交者: 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: NDmitry Popov <dp@highloadlab.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册