From: Jan Beulich Date: Mon, 1 Apr 2019 09:12:16 +0000 (+0200) Subject: x86emul/fuzz: adjust canonicalization in sanitize_input() X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~2426 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f68f35fd2016e36ee30f8b3e7dfd46c554407ac1;p=xen.git 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 --- 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