X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=net%2Fipv4%2Fudp.c;h=383d17359d01f1a81080df5aabef22266c1dd1c4;hb=837b41b5de356aa67abb2cadb5eef3efc7776f91;hp=a751770947a3df550573f01f24acfe3283beb12c;hpb=eb6a12c2428d21a9f3e0f1a50e927d5fd80fc3d0;p=linux-2.6 diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index a751770947..383d17359d 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -1325,6 +1325,8 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname, return -ENOPROTOOPT; if (val != 0 && val < 8) /* Illegal coverage: use default (8) */ val = 8; + else if (val > USHORT_MAX) + val = USHORT_MAX; up->pcslen = val; up->pcflag |= UDPLITE_SEND_CC; break; @@ -1337,6 +1339,8 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname, return -ENOPROTOOPT; if (val != 0 && val < 8) /* Avoid silly minimal values. */ val = 8; + else if (val > USHORT_MAX) + val = USHORT_MAX; up->pcrlen = val; up->pcflag |= UDPLITE_RECV_CC; break;