From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33213) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ukd2C-0006Qi-R7 for qemu-devel@nongnu.org; Thu, 06 Jun 2013 12:27:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ukd2B-00073t-Hd for qemu-devel@nongnu.org; Thu, 06 Jun 2013 12:27:32 -0400 Received: from oxygen.pond.sub.org ([2a01:4f8:121:10e4::3]:41776) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ukd2B-00073f-BX for qemu-devel@nongnu.org; Thu, 06 Jun 2013 12:27:31 -0400 From: Markus Armbruster Date: Thu, 6 Jun 2013 18:27:25 +0200 Message-Id: <1370536046-15125-7-git-send-email-armbru@redhat.com> In-Reply-To: <1370536046-15125-1-git-send-email-armbru@redhat.com> References: <1370536046-15125-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PATCH 6/7] smbios: Fix -smbios type=0, release=... for big endian hosts List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aliguori@us.ibm.com Classic endianness bug due to careless dirty coding: assuming reading a byte from an int variable gets the least significant byte. Signed-off-by: Markus Armbruster --- hw/i386/smbios.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/i386/smbios.c b/hw/i386/smbios.c index 322f0a0..68bd6d0 100644 --- a/hw/i386/smbios.c +++ b/hw/i386/smbios.c @@ -127,6 +127,7 @@ void smbios_add_field(int type, int offset, const void *data, size_t len) static void smbios_build_type_0_fields(const char *t) { char buf[1024]; + unsigned char major, minor; if (get_param_value(buf, sizeof(buf), "vendor", t)) smbios_add_field(0, offsetof(struct smbios_type_0, vendor_str), @@ -139,8 +140,7 @@ static void smbios_build_type_0_fields(const char *t) bios_release_date_str), buf, strlen(buf) + 1); if (get_param_value(buf, sizeof(buf), "release", t)) { - int major, minor; - sscanf(buf, "%d.%d", &major, &minor); + sscanf(buf, "%hhd.%hhd", &major, &minor); smbios_add_field(0, offsetof(struct smbios_type_0, system_bios_major_release), &major, 1); -- 1.7.11.7