diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index d3cfe4b31bc9..2839fe3e13b1 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -3350,6 +3350,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) {