summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2018-08-02 09:56:14 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2018-08-02 09:56:14 -0400
commit2f48778a954a386bcc28d9135d5006bcb1ea2fab (patch)
tree791646d342392dc05dbe30138fc4f92752ae50f7
parentfe06eda9cfa431b199c1b6203d8bbe44e7e47c69 (diff)
downloadlongterm-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.patch28
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
+