Re: [v3 PATCH 05/10] x86/insn-kernel: Add support to resolve 16-bit addressing encodings (fwd)

From: Julia Lawall
Date: Wed Jan 25 2017 - 16:50:04 EST


Check the type of seg on line 267.

julia

---------- Forwarded message ----------
Date: Thu, 26 Jan 2017 05:24:40 +0800
From: kbuild test robot <fengguang.wu@xxxxxxxxx>
To: kbuild@xxxxxx
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Subject: Re: [v3 PATCH 05/10] x86/insn-kernel: Add support to resolve 16-bit
addressing encodings

In-Reply-To: <20170125202353.101059-6-ricardo.neri-calderon@xxxxxxxxxxxxxxx>

Hi Ricardo,

[auto build test WARNING on tip/auto-latest]
[also build test WARNING on v4.10-rc5 next-20170125]
[cannot apply to tip/x86/core]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Ricardo-Neri/x86-Enable-User-Mode-Instruction-Prevention/20170126-043345
:::::: branch date: 51 minutes ago
:::::: commit date: 51 minutes ago

>> arch/x86/lib/insn-kernel.c:267:6-9: WARNING: Unsigned expression compared with zero: seg < 0

git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 574de0de238ef30c816985006f02f7a1dbba92aa
vim +267 arch/x86/lib/insn-kernel.c

574de0de Ricardo Neri 2017-01-25 251 addr = (seg << 4) + regs_get_register(regs, addr_offset1);
574de0de Ricardo Neri 2017-01-25 252 } else {
574de0de Ricardo Neri 2017-01-25 253 ret = get_reg_offset_16(insn, regs, &addr_offset1,
574de0de Ricardo Neri 2017-01-25 254 &addr_offset2);
574de0de Ricardo Neri 2017-01-25 255 if (ret < 0)
574de0de Ricardo Neri 2017-01-25 256 goto out_err;
574de0de Ricardo Neri 2017-01-25 257 /*
574de0de Ricardo Neri 2017-01-25 258 * Don't fail on invalid offset values. They might be invalid
574de0de Ricardo Neri 2017-01-25 259 * because they are not supported. Instead, use them in the
574de0de Ricardo Neri 2017-01-25 260 * calculation only if they contain a valid value.
574de0de Ricardo Neri 2017-01-25 261 */
574de0de Ricardo Neri 2017-01-25 262 if (addr_offset1 >= 0)
574de0de Ricardo Neri 2017-01-25 263 addr1 = regs_get_register(regs, addr_offset1);
574de0de Ricardo Neri 2017-01-25 264 if (addr_offset2 >= 0)
574de0de Ricardo Neri 2017-01-25 265 addr2 = regs_get_register(regs, addr_offset2);
574de0de Ricardo Neri 2017-01-25 266 seg = __get_segment_selector_16(regs, insn, addr_offset1);
574de0de Ricardo Neri 2017-01-25 @267 if (seg < 0)
574de0de Ricardo Neri 2017-01-25 268 goto out_err;
574de0de Ricardo Neri 2017-01-25 269 addr = (seg << 4) + addr1 + addr2;
574de0de Ricardo Neri 2017-01-25 270 }
574de0de Ricardo Neri 2017-01-25 271 addr += insn->displacement.value;
574de0de Ricardo Neri 2017-01-25 272
574de0de Ricardo Neri 2017-01-25 273 return (void __user *)addr;
574de0de Ricardo Neri 2017-01-25 274 out_err:
574de0de Ricardo Neri 2017-01-25 275 return (void __user *)-1;

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation