bugdmidecode - Bugs: bug #32203, [WISH] New command line swich for...

 
 

bug #32203: [WISH] New command line swich for decode beyond broken tables.

Submitted by:  None
Submitted on:  Fri 21 Jan 2011 12:53:53 PM UTC  
 
Category: NoneSeverity: 1 - Wish
Item Group: NoneStatus: Wont Fix
Privacy: PublicAssigned to: Jean Delvare <khali>
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Sun 30 Jan 2011 01:08:54 PM UTC, comment #4:

OK, thanks for info.

Anonymous
Sat 29 Jan 2011 03:59:07 PM UTC, comment #3:

The real bug in your DMI table is that the last string in handle 0x0002 isn't properly 0-terminated. Instead it ends with a new line character (0x0a). Replacing the byte at offset 0xD4 by 0x00 using an hexadecimal editor fixes the table and dmidecode 2.11 then decodes it properly.

Without this fix, the strings area of handle 0x0002 is not double-0-terminated as the specification requires. This is the reason why dmidecode gets confused: it looks for a double-0, and the first one it finds is in the middle of the next handle.

Dmidecode 2.8 did eventually recover, but it was by luck, not by design. And it still missed one record (in addition to printing 2 bogus reports.)

The problem is that the SMBIOS specification is such that there is no way to skip a broken record. You have to fully decode one record before you can access the next. It is thus impossible to properly handle broken tables: as soon as one record is broken, you have no reliable way to continue.

So, I don't want to add code to dmidecode to handle such cases. It is pointless, because it shouldn't be needed and can't be implemented reliably.

In your case, I see that there are many BIOS updates available for your board, so if you are really worried about the broken DMI table, you should give them a try - maybe they include a fixed DMI table.

Jean Delvare <khali>
Project AdministratorIn charge of this item.
Sat 29 Jan 2011 02:57:08 PM UTC, comment #2:

I attched output from 2.8, 2.11 and binary dump.

After one broken entry not necessery exists only broken ones. So decoding all of them, when user wants it, is resonable for me. Possibly incorrect information, when you aware about it, is better that no information at all.

(file #22554, file #22555, file #22556)

Anonymous
Sat 29 Jan 2011 12:03:19 PM UTC, comment #1:

Please provide a dump (using dmidecode --dump-bin) of such a broken table. Or, if this doesn't work, please describe in details what the problem is.

At the moment, I can't see how we could safely decode a table if we don't know its length, so I have a hard time understanding what you claim dmidecode 2.9 was doing with them. Maybe the output of dmidecode 2.9 on the affected system would help.

In general, I am not in favor of making dmidecode more flexible towards broken DMI tables. Broken tables should be fixed by vendors through a BIOS update, as it is unlikely that all tools (including the Linux kernels) will be able to deal with them anyway.

Jean Delvare <khali>
Project AdministratorIn charge of this item.
Fri 21 Jan 2011 12:53:53 PM UTC, original submission:

Dmidecode before 2.9 decode beyond tables witch length is 0 bytes. It will be good to have command line switch to restore this behaviour in current versions.

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #22557:  dmi-fixed.bin added by khali (1KiB - application/octet-stream - Fixed DMI table)
file #22554:  dmi28.txt added by None (13KiB - text/plain - binary dump, and text output from 2.8 and 2.11)
file #22555:  dmi211.txt added by None (2KiB - text/plain - binary dump, and text output from 2.8 and 2.11)
file #22556:  dmidecode.bin added by None (1KiB - application/octet-stream - binary dump, and text output from 2.8 and 2.11)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by khali (Posted a comment)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 9 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sat 29 Jan 2011 04:00:40 PM UTCkhaliAttached File-=>Added dmi-fixed.bin, #22557
      Assigned toNone=>khali
    Sat 29 Jan 2011 03:59:07 PM UTCkhaliStatusNeed Info=>Wont Fix
      Open/ClosedOpen=>Closed
    Sat 29 Jan 2011 02:57:08 PM UTCNoneAttached File-=>Added dmi28.txt, #22554
      Attached File-=>Added dmi211.txt, #22555
      Attached File-=>Added dmidecode.bin, #22556
    Sat 29 Jan 2011 12:03:19 PM UTCkhaliSeverity3 - Normal=>1 - Wish
      StatusNone=>Need Info

    Back to the top


    Powered by Savane 3.1-cleanup1