[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 for-4.9 5/7] tools/insn-fuzz: Correct hook prototypes, and assert() appropriate segments
>>> On 05.04.17 at 19:53, <andrew.cooper3@xxxxxxxxxx> wrote: > --- a/tools/fuzz/x86_instruction_emulator/fuzz-emul.c > +++ b/tools/fuzz/x86_instruction_emulator/fuzz-emul.c > @@ -117,12 +117,15 @@ static int data_read(struct x86_emulate_ctxt *ctxt, > } > > static int fuzz_read( > - unsigned int seg, > + enum x86_segment seg, > unsigned long offset, > void *p_data, > unsigned int bytes, > struct x86_emulate_ctxt *ctxt) > { > + /* Reads expected for all user and system segments. */ > + assert((unsigned int)seg < x86_seg_none); Would this perhaps be more clear as "is_user_segment() || is_system_segment()"? > @@ -274,6 +302,9 @@ static int fuzz_invlpg( > unsigned long offset, > struct x86_emulate_ctxt *ctxt) > { > + /* invlpg(), unlike all other hooks, may be called with x86_seg_none. */ > + assert((unsigned int)seg <= x86_seg_none); But no system segment, so rather "is_user_segment() || seg == none"? > @@ -300,8 +331,7 @@ static int fuzz_read_segment( > const struct fuzz_state *s = ctxt->data; > const struct fuzz_corpus *c = s->corpus; > > - if ( seg >= SEG_NUM ) > - return X86EMUL_UNHANDLEABLE; > + assert((unsigned int)seg < x86_seg_none); Same as for fuzz_read(). > @@ -317,8 +347,7 @@ static int fuzz_write_segment( > struct fuzz_corpus *c = s->corpus; > int rc; > > - if ( seg >= SEG_NUM ) > - return X86EMUL_UNHANDLEABLE; > + assert((unsigned int)seg < x86_seg_none); And here. With at least the invlpg part taken care of Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |