bpf: fix null pointer dereference on pointer offload

Pointer offload is being null checked however the following statement
dereferences the potentially null pointer offload when assigning
offload->dev_state.  Fix this by only assigning it if offload is not
null.

Detected by CoverityScan, CID#1475437 ("Dereference after null check")

Fixes: 00db12c3d1 ("bpf: call verifier_prep from its callback in struct bpf_offload_dev")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
Colin Ian King 2018-11-13 09:29:26 +00:00 committed by Alexei Starovoitov
parent 29a9c10e41
commit 592ee43faf
1 changed files with 3 additions and 2 deletions

View File

@ -130,9 +130,10 @@ int bpf_prog_offload_verifier_prep(struct bpf_prog *prog)
down_read(&bpf_devs_lock);
offload = prog->aux->offload;
if (offload)
if (offload) {
ret = offload->offdev->ops->prepare(prog);
offload->dev_state = !ret;
offload->dev_state = !ret;
}
up_read(&bpf_devs_lock);
return ret;