Re: [PATCH v7 16/26] x86/insn-eval: Support both signed 32-bit and 64-bit effective addresses

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2017-06-07 at 17:49 +0200, Borislav Petkov wrote:
> On Fri, May 05, 2017 at 11:17:14AM -0700, Ricardo Neri wrote:
> > @@ -697,18 +753,21 @@ void __user *insn_get_addr_ref(struct insn *insn, struct pt_regs *regs)
> >  {
> >  	unsigned long linear_addr, seg_base_addr, seg_limit;
> >  	long eff_addr, base, indx;
> > -	int addr_offset, base_offset, indx_offset;
> > +	int addr_offset, base_offset, indx_offset, addr_bytes;
> >  	insn_byte_t sib;
> >  
> >  	insn_get_modrm(insn);
> >  	insn_get_sib(insn);
> >  	sib = insn->sib.value;
> > +	addr_bytes = insn->addr_bytes;
> >  
> >  	if (X86_MODRM_MOD(insn->modrm.value) == 3) {
> >  		addr_offset = get_reg_offset(insn, regs, REG_TYPE_RM);
> >  		if (addr_offset < 0)
> >  			goto out_err;
> > -		eff_addr = regs_get_register(regs, addr_offset);
> > +		eff_addr = get_mem_offset(regs, addr_offset, addr_bytes);
> > +		if (eff_addr == -1L)
> > +			goto out_err;
> >  		seg_base_addr = insn_get_seg_base(regs, insn, addr_offset);
> >  		if (seg_base_addr == -1L)
> >  			goto out_err;
> 
> This code here is too dense, it needs spacing for better readability.

I have spaced out in my upcoming version.

Thanks and BR,
Ricardo

--
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Console]     [Linux Audio]     [Linux for Hams]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite Camping]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Samba]     [Linux Media]     [Fedora Users]

  Powered by Linux