|
|
|
@ -364,7 +364,7 @@ int ip_options_compile(struct net *net, |
|
|
|
|
} |
|
|
|
|
if (optptr[2] <= optlen) { |
|
|
|
|
unsigned char *timeptr = NULL; |
|
|
|
|
if (optptr[2]+3 > optptr[1]) { |
|
|
|
|
if (optptr[2]+3 > optlen) { |
|
|
|
|
pp_ptr = optptr + 2; |
|
|
|
|
goto error; |
|
|
|
|
} |
|
|
|
@ -376,7 +376,7 @@ int ip_options_compile(struct net *net, |
|
|
|
|
optptr[2] += 4; |
|
|
|
|
break; |
|
|
|
|
case IPOPT_TS_TSANDADDR: |
|
|
|
|
if (optptr[2]+7 > optptr[1]) { |
|
|
|
|
if (optptr[2]+7 > optlen) { |
|
|
|
|
pp_ptr = optptr + 2; |
|
|
|
|
goto error; |
|
|
|
|
} |
|
|
|
@ -390,7 +390,7 @@ int ip_options_compile(struct net *net, |
|
|
|
|
optptr[2] += 8; |
|
|
|
|
break; |
|
|
|
|
case IPOPT_TS_PRESPEC: |
|
|
|
|
if (optptr[2]+7 > optptr[1]) { |
|
|
|
|
if (optptr[2]+7 > optlen) { |
|
|
|
|
pp_ptr = optptr + 2; |
|
|
|
|
goto error; |
|
|
|
|
} |
|
|
|
|