Hi Jerry,

On Fri, 6 Jun 2025 17:27:28 -0600, Jerry Hoemann wrote:
> On Thu, Jun 05, 2025 at 08:16:05PM +0200, Jean Delvare wrote:
> > dmi_print_cpuid() expects a pointer to raw data to interpret as a
> > CPUID, not to a native integer. If we call DWORD() on the data before
> > calling dmi_print_cpuid(), and once again in dmi_print_cpuid(), we
> > end up swapping the bytes twice if running on a big-endian system,
> > which causes completely wrong CPU ID data to be displayed.  
> 
> So, would this happen on a BIG ENDIAN system running dmidecode with the
> --from-dump flag specifying a LITTLE ENDIAN ProLiant binary?

Yes. This is exactly how I noticed the problem.

Note that DMI tables are always little-endian anyway, regardless of the
endianness of the system they live on.

-- 
Jean Delvare
SUSE L3 Support

Reply via email to