| From 395d97668ed0ff58eccc6e5453529587d7e4891b Mon Sep 17 00:00:00 2001 |
| From: Josh Poimboeuf <jpoimboe@redhat.com> |
| Date: Sat, 25 Apr 2020 05:06:13 -0500 |
| Subject: [PATCH] x86/unwind/orc: Fix error path for bad ORC entry type |
| |
| commit a0f81bf26888048100bf017fadf438a5bdffa8d8 upstream. |
| |
| If the ORC entry type is unknown, nothing else can be done other than |
| reporting an error. Exit the function instead of breaking out of the |
| switch statement. |
| |
| Fixes: ee9f8fce9964 ("x86/unwind: Add the ORC unwinder") |
| Reviewed-by: Miroslav Benes <mbenes@suse.cz> |
| Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> |
| Signed-off-by: Ingo Molnar <mingo@kernel.org> |
| Cc: Andy Lutomirski <luto@kernel.org> |
| Cc: Dave Jones <dsj@fb.com> |
| Cc: Jann Horn <jannh@google.com> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Cc: Vince Weaver <vincent.weaver@maine.edu> |
| Link: https://lore.kernel.org/r/a7fa668ca6eabbe81ab18b2424f15adbbfdc810a.1587808742.git.jpoimboe@redhat.com |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/x86/kernel/unwind_orc.c b/arch/x86/kernel/unwind_orc.c |
| index aba048f21b0a..e32393b396ed 100644 |
| --- a/arch/x86/kernel/unwind_orc.c |
| +++ b/arch/x86/kernel/unwind_orc.c |
| @@ -528,7 +528,7 @@ bool unwind_next_frame(struct unwind_state *state) |
| default: |
| orc_warn("unknown .orc_unwind entry type %d for ip %pB\n", |
| orc->type, (void *)orig_ip); |
| - break; |
| + goto err; |
| } |
| |
| /* Find BP: */ |
| -- |
| 2.7.4 |
| |