[Crash-utility] kmem -s/-S not working properly on RHEL8.6/8.7

lijiang lijiang at redhat.com
Wed Feb 8 12:58:06 UTC 2023


On Wed, Feb 8, 2023 at 5:08 PM Aureau, Georges (Kernel Tools ERT) <
georges.aureau at hpe.com> wrote:

> Hello Lianbo,
>
> > The number of instructions disassembled by gdb is: spn->value -
> sp->value, which is much more than actually needed.
> > Can you please replace it with this one?
> > + sprintf(buf1, "disassemble 0x%lx, 0x%lx", sp->value, spn->value);
>
> What about just doing "disassemble __slab_free":
>
>
 Also fine to me.

+/*
> + * With CONFIG_SLAB_FREELIST_HARDENED, freelist_ptr's are crypted with
> xor's,
> + * and for recent release with an additionnal bswap. Some releases prio
> to 5.7.0
> + * may be using the additionnal bswap. The only easy and reliable way to
> tell is
> + * to inspect assembly code (eg. "__slab_free") for a bswap instruction.
> + */
> +static int
> +freelist_ptr_bswap_x86(void)
> +{
> +       char buf1[BUFSIZE];
> +       char buf2[BUFSIZE];
> +       char *arglist[MAXARGS];
> +       int found;
> +       sprintf(buf1, "disassemble __slab_free");
> +       open_tmpfile();
> +       gdb_pass_through(buf1, pc->tmpfile, GNU_RETURN_ON_ERROR);
>

It could be good to check the return value of gdb_pass_through(). For
example:

if (!gdb_pass_through(buf1, pc->tmpfile, GNU_RETURN_ON_ERROR)) {
    close_tmpfile();
    return FALSE.
}


> +       rewind(pc->tmpfile);
> +       found = FALSE;
> +       while (fgets(buf2, BUFSIZE, pc->tmpfile)) {
> +               if (parse_line(buf2, arglist) < 3)
> +                       continue;
> +               if (STREQ(arglist[2], "bswap")) {
> +                       found = TRUE;
> +                       //break;
>

Here, the above break is still needed.

Thanks.
Lianbo

+               }
> +       }
> +       close_tmpfile();
> +       return found;
> +}
>
> Thanks,
> Georges
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20230208/b73e2c89/attachment-0001.htm>


More information about the Crash-utility mailing list