|
@@ -1089,8 +1089,13 @@ static int pt_event_addr_filters_validate(struct list_head *filters)
|
|
if (!filter->range || !filter->size)
|
|
if (!filter->range || !filter->size)
|
|
return -EOPNOTSUPP;
|
|
return -EOPNOTSUPP;
|
|
|
|
|
|
- if (!filter->inode && !valid_kernel_ip(filter->offset))
|
|
|
|
- return -EINVAL;
|
|
|
|
|
|
+ if (!filter->inode) {
|
|
|
|
+ if (!valid_kernel_ip(filter->offset))
|
|
|
|
+ return -EINVAL;
|
|
|
|
+
|
|
|
|
+ if (!valid_kernel_ip(filter->offset + filter->size))
|
|
|
|
+ return -EINVAL;
|
|
|
|
+ }
|
|
|
|
|
|
if (++range > pt_cap_get(PT_CAP_num_address_ranges))
|
|
if (++range > pt_cap_get(PT_CAP_num_address_ranges))
|
|
return -EOPNOTSUPP;
|
|
return -EOPNOTSUPP;
|