[Crash-utility] Re: [Crash-Utility][PATCH v2] symbols.c: skip non-exist module memory type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Kazu,

On Thu, Apr 4, 2024 at 4:31 PM HAGIO KAZUHITO(萩尾 一仁) <k-hagio-ab@xxxxxxx> wrote:
>
> On 2024/04/03 16:06, Tao Liu wrote:
> > Not all mod_mem_type will be included for kernel modules. E.g. in the
> > following module case:
> >
> > (gdb) p lm->symtable[0]
> > $1 = (struct syment *) 0x4dcbad0
> > (gdb) p lm->symtable[1]
> > $2 = (struct syment *) 0x4dcbb70
> > (gdb) p lm->symtable[2]
> > $3 = (struct syment *) 0x4dcbc10
> > (gdb) p lm->symtable[3]
> > $4 = (struct syment *) 0x0
> > (gdb) p lm->symtable[4]
> > $5 = (struct syment *) 0x4dcbcb0
> > (gdb) p lm->symtable[5]
> > $6 = (struct syment *) 0x4dcbd00
> > (gdb) p lm->symtable[6]
> > $7 = (struct syment *) 0x0
> > (gdb) p lm->symtable[7]
> > $8 = (struct syment *) 0x4dcbb48
> >
> > mod_mem MOD_RO_AFTER_INIT(3) and MOD_INIT_RODATA(6) is not exist, which should
> > be skipped, otherwise a segfault will happen.
> >
> > Fixes: 7750e61fdb2a ("Support module memory layout change on Linux 6.4")
> >
> > Signed-off-by: Tao Liu <ltao@xxxxxxxxxx>
> > Reported-by: Naveen Chaudhary <naveenchaudhary2010@xxxxxxxxxxx>
> > ---
> >
> > v1 -> v2: Keep the same code style as other similar iteration/checking cases.
>
> Thank you for the update, applied with some information in the commit
> log for someone searches for this issue more easily.
>
Thanks, that's better! And thanks for the code review and merge!

Thanks,
Tao Liu

> https://github.com/crash-utility/crash/commit/ced754d3f8ce796d0d894dbb0f340e9c905c206a
>
> Thanks,
> Kazu
>
>
> >
> > ---
> >   symbols.c | 3 +++
> >   1 file changed, 3 insertions(+)
> >
> > diff --git a/symbols.c b/symbols.c
> > index cbc9ed1..b7627a8 100644
> > --- a/symbols.c
> > +++ b/symbols.c
> > @@ -5577,6 +5577,9 @@ value_search_module_6_4(ulong value, ulong *offset)
> >                       continue;
> >
> >               for_each_mod_mem_type(t) {
> > +                     if (!lm->symtable[t])
> > +                             continue;
> > +
> >                       sp = lm->symtable[t];
> >                       sp_end = lm->symend[t];
> >
--
Crash-utility mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxxxxxx
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki




[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux