diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 0bbb3470fa7..b915d011287 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -3338,6 +3338,8 @@ static int packet_getsockopt(struct socket *sock, int level, int optname, case PACKET_HDRLEN: if (len > sizeof(int)) len = sizeof(int); + if (len < sizeof(int)) + return -EINVAL; if (copy_from_user(&val, optval, len)) return -EFAULT; switch (val) {