|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [UNIKRAFT PATCH v2] lib/ukdebug: uk_asmdumpk(), uk_asmdumpn(): Stop decoding on errors
Hi,
Looks good, thanks.
— Felipe
Reviewed-by: Felipe Huici <felipe.huici@xxxxxxxxx>
On Mon, May 4, 2020 at 11:56 AM Simon Kuenzer <simon.kuenzer@xxxxxxxxx> wrote:
>
> Checks for errors that may occur during instruction decoding with
> libzydis.
>
> Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
> ---
> lib/ukdebug/asmdump.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/lib/ukdebug/asmdump.c b/lib/ukdebug/asmdump.c
> index f73b0d65..f860533c 100644
> --- a/lib/ukdebug/asmdump.c
> +++ b/lib/ukdebug/asmdump.c
> @@ -43,7 +43,7 @@
>
> /**
> * Disassemble <num_ins> instructions with zydis starting
> - * with instruction at <addr>
> + * with instruction at <instr>
> */
> static int _asmdump(struct out_dev *o,
> const void *instr, unsigned int count)
> @@ -76,7 +76,10 @@ static int _asmdump(struct out_dev *o,
>
> while (count) {
> addr = ((__uptr) instr) + offset;
> - ZydisDecoderDecodeBuffer(&dcr, (const void *) addr, 16, &ins);
> + if (!ZYAN_SUCCESS(ZydisDecoderDecodeBuffer(&dcr,
> + (const void *)
> addr,
> + 16, &ins)))
> + break;
> ZydisFormatterFormatInstruction(&fmt, &ins, buf, sizeof(buf),
> addr);
> ret = outf(o, "%08"__PRIuptr" <+%d>: %hs\n", addr, offset,
> buf);
> --
> 2.20.1
>
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |