diff options
Diffstat (limited to 'net/ipv6/udp.c')
-rw-r--r-- | net/ipv6/udp.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index b444483cdb2b..622eeaf5732b 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -1047,6 +1047,8 @@ static void udp_v6_flush_pending_frames(struct sock *sk) | |||
1047 | static int udpv6_pre_connect(struct sock *sk, struct sockaddr *uaddr, | 1047 | static int udpv6_pre_connect(struct sock *sk, struct sockaddr *uaddr, |
1048 | int addr_len) | 1048 | int addr_len) |
1049 | { | 1049 | { |
1050 | if (addr_len < offsetofend(struct sockaddr, sa_family)) | ||
1051 | return -EINVAL; | ||
1050 | /* The following checks are replicated from __ip6_datagram_connect() | 1052 | /* The following checks are replicated from __ip6_datagram_connect() |
1051 | * and intended to prevent BPF program called below from accessing | 1053 | * and intended to prevent BPF program called below from accessing |
1052 | * bytes that are out of the bound specified by user in addr_len. | 1054 | * bytes that are out of the bound specified by user in addr_len. |