** Changed in: libsmbios (Ubuntu) Status: Incomplete => In Progress
** Changed in: libsmbios (Ubuntu) Assignee: (unassigned) => Brian Murray (brian-murray) ** Changed in: libsmbios (Ubuntu) Importance: Undecided => Medium ** Also affects: libsmbios (Ubuntu Lucid) Importance: Undecided Status: New ** Changed in: libsmbios (Ubuntu Lucid) Status: New => In Progress ** Changed in: libsmbios (Ubuntu Lucid) Importance: Undecided => Medium ** Description changed: Hello, I encountered a bug while updating some Dell server BIOS, with a 3.0.0 BIOS on Ubuntu 10.04 LTS (lucid). The current version of python- libsmbios on lucid suffers of a parsing bug on the bios version string, due to null bytes (.0.0) in the version string. With the following files: Works: http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x0236_version_2.3.12/bios.hdr Fails: http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x0236_version_3.0.0/bios.hdr - this can be verified with the following command: + == SRU Justification == + * Impact: users needing to upgrade DELL server's firmware to version + 3.0.0 on Ubuntu 10.04 LTS are not be able to do so due to parsing issue. + + TEST CASE: + How to reproduce: + 1. wget http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x0236_version_3.0.0/bios.hdr + 2. smbios-rbu-bios-update --hdr-info=bios.hdr + + Expected results: + No error messages, and a proper parse output from the bios. + Actual results: + Python traceback. + + + Output from step 2 failing follows: # smbios-rbu-bios-update --hdr-info=bios-3.0.0.hdr BIOS HDR file information dump. Filename: /dev/shm/bios.hdr File magic header: $RBU Header length: 84 Header major version: 2 Header minor version: 0 Number of supported systems: 10 - Quick check field: Copyright 2011 Dell Inc. + Quick check field: Copyright 2011 Dell Inc. Traceback (most recent call last): - File "/usr/sbin/smbios-rbu-bios-update", line 185, in <module> - sys.exit( main() ) - File "/usr/sbin/smbios-rbu-bios-update", line 138, in main - dumpHdrFileInfo(h) - File "<libsmbios_c._peak_util_decorators.rewrap wrapping libsmbios_c.rbu_hdr.dumpHdrFileInfo at 0x0184C6E0>", line 3, in dumpHdrFileInfo - File "/usr/lib/python2.6/dist-packages/libsmbios_c/trace_decorator.py", line 98, in trace - result = func(*args, **kw) - File "/usr/lib/python2.6/dist-packages/libsmbios_c/rbu_hdr.py", line 43, in dumpHdrFileInfo - print _("BIOS Version: %s") % hdr.biosVersion() - File "<libsmbios_c._peak_util_decorators.rewrap wrapping libsmbios_c.rbu_hdr.biosVersion at 0x018A25F0>", line 3, in biosVersion - File "/usr/lib/python2.6/dist-packages/libsmbios_c/trace_decorator.py", line 98, in trace - result = func(*args, **kw) - File "/usr/lib/python2.6/dist-packages/libsmbios_c/rbu_hdr.py", line 87, in biosVersion - ver = "%d.%d.%d" % struct.unpack("BBB", self.hdr.biosVersion) + File "/usr/sbin/smbios-rbu-bios-update", line 185, in <module> + sys.exit( main() ) + File "/usr/sbin/smbios-rbu-bios-update", line 138, in main + dumpHdrFileInfo(h) + File "<libsmbios_c._peak_util_decorators.rewrap wrapping libsmbios_c.rbu_hdr.dumpHdrFileInfo at 0x0184C6E0>", line 3, in dumpHdrFileInfo + File "/usr/lib/python2.6/dist-packages/libsmbios_c/trace_decorator.py", line 98, in trace + result = func(*args, **kw) + File "/usr/lib/python2.6/dist-packages/libsmbios_c/rbu_hdr.py", line 43, in dumpHdrFileInfo + print _("BIOS Version: %s") % hdr.biosVersion() + File "<libsmbios_c._peak_util_decorators.rewrap wrapping libsmbios_c.rbu_hdr.biosVersion at 0x018A25F0>", line 3, in biosVersion + File "/usr/lib/python2.6/dist-packages/libsmbios_c/trace_decorator.py", line 98, in trace + result = func(*args, **kw) + File "/usr/lib/python2.6/dist-packages/libsmbios_c/rbu_hdr.py", line 87, in biosVersion + ver = "%d.%d.%d" % struct.unpack("BBB", self.hdr.biosVersion) struct.error: unpack requires a string argument of length 3 - - On newer Ubuntu versions, libsmbios has a fix about that ; could it be backported to lucid ? + On newer Ubuntu versions, libsmbios has a fix about that ; could it be + backported to lucid ? --- /usr/lib/python2.6/dist-packages/libsmbios_c/rbu_hdr.py.old 2011-07-19 23:57:50.506269986 +0200 +++ /usr/lib/python2.6/dist-packages/libsmbios_c/rbu_hdr.py 2011-07-20 00:14:46.656270075 +0200 @@ -107,7 +107,7 @@ - #char quickCheck[40]; - ("quickCheck", ctypes.c_char * 40), - #char biosVersion[3]; + #char quickCheck[40]; + ("quickCheck", ctypes.c_char * 40), + #char biosVersion[3]; - ("biosVersion", ctypes.c_char * 3), + ("biosVersion", ctypes.c_uint8 * 3), - #u8 miscFlags; - ("miscFlags", ctypes.c_uint8), - #u8 biosInternalUse; + #u8 miscFlags; + ("miscFlags", ctypes.c_uint8), + #u8 biosInternalUse; Thanks. - Description: Ubuntu 10.04.2 LTS Release: 10.04 libsmbios2: - Installed: 2.2.13-0ubuntu4.1 - Candidate: 2.2.13-0ubuntu4.1 - Version table: - *** 2.2.13-0ubuntu4.1 0 - 500 http://fr.archive.ubuntu.com/ubuntu/ lucid-updates/universe Packages - 100 /var/lib/dpkg/status - 2.2.13-0ubuntu4 0 - 500 http://fr.archive.ubuntu.com/ubuntu/ lucid/universe Packages - 500 http://linux.dell.com/repo/community/deb/latest/ Packages + Installed: 2.2.13-0ubuntu4.1 + Candidate: 2.2.13-0ubuntu4.1 + Version table: + *** 2.2.13-0ubuntu4.1 0 + 500 http://fr.archive.ubuntu.com/ubuntu/ lucid-updates/universe Packages + 100 /var/lib/dpkg/status + 2.2.13-0ubuntu4 0 + 500 http://fr.archive.ubuntu.com/ubuntu/ lucid/universe Packages + 500 http://linux.dell.com/repo/community/deb/latest/ Packages -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/813210 Title: python-libsmbbios bios version check on lucid [backport request] To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libsmbios/+bug/813210/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs