On Wed, 12 Nov 2014, Dave Hansen wrote: > Changes from the old decoder: > * Use the generic decoder instead of custom functions. Saved > ~70 lines of code overall. > * Remove insn->addr_bytes code (never used??) > * Make sure never to possibly overflow the regoff[] array, plus > check the register range correctly in 32 and 64-bit modes. > * Allow get_reg() to return an error and have mpx_get_addr_ref() > handle when it sees errors. > * Only call insn_get_*() near where we actually use the values > instead if trying to call them all at once. > * Handle short reads from copy_from_user() and check the actual > number of read bytes against what we expect from > insn_get_length(). If a read stops in the middle of an > instruction, we error out. > * Actually check the opcodes intead of ignoring them. > * Dynamically kzalloc() siginfo_t so we don't leak any stack > data. > * Detect and handle decoder failures instead of ignoring them. Very nice work! It's easy to follow and the error handling of all sorts is well thought out. Thanks, tglx