[Crash-utility] [PATCH v3] x86_64_exception_frame only performs EFRAME_VERIFY if it is the only flag

HAGIO KAZUHITO(萩尾 一仁) k-hagio-ab at nec.com
Thu Sep 10 09:29:04 UTC 2020


-----Original Message-----
...
> >> If verifying local argument, translate to a kernel address range using
> >> the stackbuf and stackbase members of the bt argument the same way used
> >> for EFRAME_SEARCH later in x86_64_exception_frame(). local and
> >> bt->stackbuf are char *, the assignment destination and bt->stackbase
> >> are ulong. Cast the char * variables to uintptr_t for the assignment
> >> arithmetic using the local argument to prevent gcc 10.2 errors assigning
> >> char * to ulong...the sum is okay without casts in the uses for function
> >> arguments later.
> >
> > sorry for nitpicking, but I may need some study, what errors do you see?
> > If you replace uintptr_t with ulong, what do you see?
> >
> > I cannot see any errors with Fedora gcc 10.2 without the casts.
> > and uintptr_t looks same as ulong.  In the crash source code, we usually
> > use ulong for pointer value.
> 
> Thanks, yes, I thought of doing it using ulong casts. The language standard
> offers uintptr_t for "portable" pointer arithmetic. Crash has no instances
> but gdb 7.6 has nearly 300. However, it certainly doesn't matter to me which
> is used and I'd expect ulong to achieve the same on supported architexctures
> with the advantage of not appearing to do two type conversions (ulong through
> uintptr_t from char *).

I got it and learned, thanks.

Kazu

> 
> I'll have to rebuild and remind myself of the gcc specific error I see. I'll
> post later with the specifics.
> 
> > The patch logic looks good and tested OK.
> 
> Thanks,
> David Mair.
> 
> 
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility




More information about the Crash-utility mailing list