applied: https://github.com/crash-utility/crash/commit/33f492f6443e5b5e1d260653391446f469c45601
On Fri, Sep 5, 2025 at 4:24 PM Tao Liu <[email protected]> wrote: > > Hi lianbo, > > Thanks for the fix, LGTM, ack. > > Thanks, > Tao Liu > > On Fri, Sep 5, 2025 at 3:52 PM Lianbo Jiang <[email protected]> wrote: > > > > I did some tests on the vmcore with Rust enabled, and found that > > the "dis -s" command may cause a segfault: > > > > crash> dis -s _RNvCscb18lrEyTSA_10rust_panic10area_in_hp > > Enable debuginfod for this session? (y or [n]) > > FILE: rust_panic.rs > > LINE: 22 > > > > Segmentation fault (core dumped) ./crash > > /home/lijiang/src/rust/6.16.3-vmcore-rust/vmlinux > > /home/lijiang/src/rust/6.16.3-vmcore-rust/vmcore > > > > gdb calltrace: > > (gdb) bt > > #0 decimal (s=0x0, count=count@entry=0) at tools.c:1113 > > #1 0x00000000008eea96 in list_source_code (req=0x1081860 <shared_bufs>, > > count_entered=0) at kernel.c:1578 > > #2 cmd_dis () at kernel.c:2052 > > #3 0x000000000086b468 in exec_command () at main.c:893 > > #4 0x000000000086b6aa in main_loop () at main.c:840 > > #5 0x00000000006b950c in captured_main (data=data@entry=0x7ffe049a3bd0) > > at main.c:1374 > > #6 gdb_main (args=args@entry=0x7ffe049a3c10) at main.c:1407 > > #7 0x00000000006b9579 in gdb_main_entry (argc=2, > > argv=argv@entry=0x7ffe049a3db8) at main.c:1434 > > #8 0x000000000090529e in gdb_main_loop (argc=<optimized out>, > > argc@entry=3, argv=argv@entry=0x7ffe049a3db8) > > at gdb_interface.c:81 > > #9 0x0000000000438344 in main (argc=3, argv=0x7ffe049a3db8) at main.c:721 > > (gdb) > > > > This is because the decimal() tried to dereference a NULL pointer in the > > list_source_code() path, when the source code is not available. Given > > that, let's add a check to fix such cases. > > > > With the patch: > > crash> dis -s _RNvCscb18lrEyTSA_10rust_panic10area_in_hp > > Enable debuginfod for this session? (y or [n]) > > FILE: rust_panic.rs > > LINE: 22 > > > > dis: _RNvCscb18lrEyTSA_10rust_panic10area_in_hp: source code is not > > available > > > > crash> > > > > Signed-off-by: Lianbo Jiang <[email protected]> > > --- > > tools.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/tools.c b/tools.c > > index c9305bef7c9c..a9ad18d520d9 100644 > > --- a/tools.c > > +++ b/tools.c > > @@ -1110,7 +1110,7 @@ decimal(char *s, int count) > > } else > > cnt = count; > > > > - for (p = &s[0], digits = 0; *p; p++) { > > + for (p = &s[0], digits = 0; p && *p; p++) { > > switch(*p) > > { > > case '0': > > -- > > 2.50.1 > > -- Crash-utility mailing list -- [email protected] To unsubscribe send an email to [email protected] https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ Contribution Guidelines: https://github.com/crash-utility/crash/wiki
