aya-bpf: helpers::read_{kernel,user}_str_bytes additional len check

Without additional check verifier fails swearing len lower bound is a
negative value. Observed on v5.19/ubuntu 22.04.

Signed-off-by: Tomasz Jonak <tomasz@deepfence.io>
pull/617/head
Tomasz Jonak 2 years ago
parent 3f1a469f06
commit 0640c843b4

@ -430,6 +430,11 @@ pub unsafe fn bpf_probe_read_user_str_bytes(
return Err(-1); return Err(-1);
} }
// verifier complains if this check is missing on v5.19
if len < 1 {
return Err(-1);
}
// len includes NULL byte // len includes NULL byte
Ok(&dest[..len - 1]) Ok(&dest[..len - 1])
} }
@ -583,6 +588,11 @@ pub unsafe fn bpf_probe_read_kernel_str_bytes(
return Err(-1); return Err(-1);
} }
// verifier complains if this check is missing on v5.19
if len < 1 {
return Err(-1);
}
// len includes NULL byte // len includes NULL byte
Ok(&dest[..len - 1]) Ok(&dest[..len - 1])
} }

Loading…
Cancel
Save