diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-08-02 09:56:14 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-08-02 09:56:14 -0400 |
commit | 2f48778a954a386bcc28d9135d5006bcb1ea2fab (patch) | |
tree | 791646d342392dc05dbe30138fc4f92752ae50f7 | |
parent | fe06eda9cfa431b199c1b6203d8bbe44e7e47c69 (diff) | |
download | longterm-queue-4.12-2f48778a954a386bcc28d9135d5006bcb1ea2fab.tar.gz |
bpf: context refresh
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | queue/bpf-fix-incorrect-sign-extension-in-check_alu_op.patch | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/queue/bpf-fix-incorrect-sign-extension-in-check_alu_op.patch b/queue/bpf-fix-incorrect-sign-extension-in-check_alu_op.patch index bafa97f..3df39e6 100644 --- a/queue/bpf-fix-incorrect-sign-extension-in-check_alu_op.patch +++ b/queue/bpf-fix-incorrect-sign-extension-in-check_alu_op.patch @@ -1,17 +1,11 @@ -From foo@baz Fri Dec 22 16:57:35 CET 2017 +From f7c965238207eb18d933f0305e9d851995557cb7 Mon Sep 17 00:00:00 2001 From: Daniel Borkmann <daniel@iogearbox.net> Date: Fri, 22 Dec 2017 16:29:05 +0100 -Subject: bpf: fix incorrect sign extension in check_alu_op() -To: gregkh@linuxfoundation.org -Cc: ast@kernel.org, daniel@iogearbox.net, jannh@google.com, stable@vger.kernel.org -Message-ID: <20171222152905.3455-5-daniel@iogearbox.net> - -From: Daniel Borkmann <daniel@iogearbox.net> - +Subject: [PATCH] bpf: fix incorrect sign extension in check_alu_op() From: Jann Horn <jannh@google.com> -[ Upstream commit 95a762e2c8c942780948091f8f2a4f32fce1ac6f ] +commit 95a762e2c8c942780948091f8f2a4f32fce1ac6f upstream Distinguish between BPF_ALU64|BPF_MOV|BPF_K (load 32-bit immediate, sign-extended to 64-bit) @@ -32,13 +26,14 @@ Acked-by: Edward Cree <ecree@solarflare.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - kernel/bpf/verifier.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) +[PG: borrow 4.9.x backport for this 4.12.x baseline.] +Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> +diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c +index 37c43197d8c5..f4652d4fdec4 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c -@@ -1790,10 +1790,17 @@ static int check_alu_op(struct bpf_verif +@@ -2041,10 +2041,17 @@ static int check_alu_op(struct bpf_verifier_env *env, struct bpf_insn *insn) /* case: R = imm * remember the value we stored into this reg */ @@ -56,6 +51,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> + regs[insn->dst_reg].imm = imm; + regs[insn->dst_reg].max_value = imm; + regs[insn->dst_reg].min_value = imm; + regs[insn->dst_reg].min_align = calc_align(insn->imm); + regs[insn->dst_reg].value_from_signed = false; } - - } else if (opcode > BPF_END) { +-- +2.15.0 + |