提交 47112e25 编写于 作者: G Gerrit Renker 提交者: David S. Miller

udplite: Protection against coverage value wrap-around

This patch clamps the cscov setsockopt values to a maximum of 0xFFFF.

Setsockopt values greater than 0xffff can cause an unwanted
wrap-around.  Further, IPv6 jumbograms are not supported (RFC 3838,
3.5), so that values greater than 0xffff are not even useful.

Further changes: fixed a typo in the documentation.
Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 6579e57b
...@@ -148,7 +148,7 @@ ...@@ -148,7 +148,7 @@
getsockopt(sockfd, SOL_SOCKET, SO_NO_CHECK, &value, ...); getsockopt(sockfd, SOL_SOCKET, SO_NO_CHECK, &value, ...);
is meaningless (as in TCP). Packets with a zero checksum field are is meaningless (as in TCP). Packets with a zero checksum field are
illegal (cf. RFC 3828, sec. 3.1) will be silently discarded. illegal (cf. RFC 3828, sec. 3.1) and will be silently discarded.
4) Fragmentation 4) Fragmentation
......
...@@ -1325,6 +1325,8 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname, ...@@ -1325,6 +1325,8 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname,
return -ENOPROTOOPT; return -ENOPROTOOPT;
if (val != 0 && val < 8) /* Illegal coverage: use default (8) */ if (val != 0 && val < 8) /* Illegal coverage: use default (8) */
val = 8; val = 8;
else if (val > USHORT_MAX)
val = USHORT_MAX;
up->pcslen = val; up->pcslen = val;
up->pcflag |= UDPLITE_SEND_CC; up->pcflag |= UDPLITE_SEND_CC;
break; break;
...@@ -1337,6 +1339,8 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname, ...@@ -1337,6 +1339,8 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname,
return -ENOPROTOOPT; return -ENOPROTOOPT;
if (val != 0 && val < 8) /* Avoid silly minimal values. */ if (val != 0 && val < 8) /* Avoid silly minimal values. */
val = 8; val = 8;
else if (val > USHORT_MAX)
val = USHORT_MAX;
up->pcrlen = val; up->pcrlen = val;
up->pcflag |= UDPLITE_RECV_CC; up->pcflag |= UDPLITE_RECV_CC;
break; break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册