aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2019-05-12 20:03:35 -0700
committerDavid S. Miller <davem@davemloft.net>2019-05-12 20:03:35 -0700
commit69dda13fdaffc5e2dbbc6ffa3a6963073b748ac3 (patch)
treeaea39a591ee5c8d984e8ec36a0ce89959118f53b /kernel
parentnet: dccp : proto: remove Unneeded variable "err" (diff)
parentbpf: fix undefined behavior in narrow load handling (diff)
downloadlinux-69dda13fdaffc5e2dbbc6ffa3a6963073b748ac3.tar.gz
linux-69dda13fdaffc5e2dbbc6ffa3a6963073b748ac3.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
Daniel Borkmann says: ==================== pull-request: bpf 2019-05-13 The following pull-request contains BPF updates for your *net* tree. The main changes are: 1) Fix out of bounds backwards jumps due to a bug in dead code removal, from Daniel. 2) Fix libbpf users by detecting unsupported BTF kernel features and sanitize them before load, from Andrii. 3) Fix undefined behavior in narrow load handling of context fields, from Krzesimir. 4) Various BPF uapi header doc/man page fixes, from Quentin. 5) Misc .gitignore fixups to exclude built files, from Kelsey. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/bpf/core.c4
-rw-r--r--kernel/bpf/verifier.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
index 3ba56e73c90e..242a643af82f 100644
--- a/kernel/bpf/core.c
+++ b/kernel/bpf/core.c
@@ -338,7 +338,7 @@ int bpf_prog_calc_tag(struct bpf_prog *fp)
}
static int bpf_adj_delta_to_imm(struct bpf_insn *insn, u32 pos, s32 end_old,
- s32 end_new, u32 curr, const bool probe_pass)
+ s32 end_new, s32 curr, const bool probe_pass)
{
const s64 imm_min = S32_MIN, imm_max = S32_MAX;
s32 delta = end_new - end_old;
@@ -356,7 +356,7 @@ static int bpf_adj_delta_to_imm(struct bpf_insn *insn, u32 pos, s32 end_old,
}
static int bpf_adj_delta_to_off(struct bpf_insn *insn, u32 pos, s32 end_old,
- s32 end_new, u32 curr, const bool probe_pass)
+ s32 end_new, s32 curr, const bool probe_pass)
{
const s32 off_min = S16_MIN, off_max = S16_MAX;
s32 delta = end_new - end_old;
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 7b05e8938d5c..95f9354495ad 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -7599,7 +7599,7 @@ static int convert_ctx_accesses(struct bpf_verifier_env *env)
insn->dst_reg,
shift);
insn_buf[cnt++] = BPF_ALU64_IMM(BPF_AND, insn->dst_reg,
- (1 << size * 8) - 1);
+ (1ULL << size * 8) - 1);
}
}