diff options
-rw-r--r-- | net/ipv4/ip_options.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/ipv4/ip_options.c b/net/ipv4/ip_options.c index b69a3700642..52354173077 100644 --- a/net/ipv4/ip_options.c +++ b/net/ipv4/ip_options.c @@ -279,6 +279,10 @@ int ip_options_compile(struct net *net, optptr++; continue; } + if (unlikely(l < 2)) { + pp_ptr = optptr; + goto error; + } optlen = optptr[1]; if (optlen<2 || optlen>l) { pp_ptr = optptr; |