From f68f35fd2016e36ee30f8b3e7dfd46c554407ac1 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Mon, 1 Apr 2019 11:12:16 +0200 Subject: [PATCH] x86emul/fuzz: adjust canonicalization in sanitize_input() Drop it entirely for %rbp - this register is not special purpose enough to warrant such special treatment. Add a comment to clarify the purpose of the canonicalization of %rip and %rsp. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- tools/fuzz/x86_instruction_emulator/fuzz-emul.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c index 0ffd0fbfe1..8ab3626f5e 100644 --- a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c +++ b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c @@ -708,7 +708,6 @@ enum { HOOK_vmfunc, CANONICALIZE_rip, CANONICALIZE_rsp, - CANONICALIZE_rbp }; /* Expects bitmap to be defined */ @@ -785,9 +784,13 @@ static void sanitize_input(struct x86_emulate_ctxt *ctxt) regs->error_code = 0; regs->entry_vector = 0; + /* + * For both RIP and RSP make sure we test with canonical values in at + * least a fair number of cases. As all other registers aren't tied to + * special addressing purposes, leave everything else alone. + */ CANONICALIZE_MAYBE(rip); CANONICALIZE_MAYBE(rsp); - CANONICALIZE_MAYBE(rbp); /* * CR0.PG can't be set if CR0.PE isn't set. Set is more interesting, so -- 2.30.2