| From e12ec26e19e02281d3e7258c3aabb88a5cf5ec1d Mon Sep 17 00:00:00 2001 |
| From: Jean Delvare <jdelvare@suse.de> |
| Date: Mon, 26 Aug 2019 14:20:15 +0200 |
| Subject: dmidecode: Only scan /dev/mem for entry point on x86 |
| |
| x86 is the only architecture which can have a DMI entry point scanned |
| from /dev/mem. Do not attempt it on other architectures, because not |
| only it can't work, but it can even cause the system to reboot. |
| |
| This fixes support request #109697: |
| https://savannah.nongnu.org/support/?109697 |
| --- |
| dmidecode.c | 8 +++++--- |
| 1 file changed, 5 insertions(+), 3 deletions(-) |
| |
| diff --git a/dmidecode.c b/dmidecode.c |
| index 21bfd65..9c1e9c4 100644 |
| --- a/dmidecode.c |
| +++ b/dmidecode.c |
| @@ -2,7 +2,7 @@ |
| * DMI Decode |
| * |
| * Copyright (C) 2000-2002 Alan Cox <alan@redhat.com> |
| - * Copyright (C) 2002-2018 Jean Delvare <jdelvare@suse.de> |
| + * Copyright (C) 2002-2019 Jean Delvare <jdelvare@suse.de> |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| @@ -5538,7 +5538,7 @@ int main(int argc, char * const argv[]) |
| off_t fp; |
| size_t size; |
| int efi; |
| - u8 *buf; |
| + u8 *buf = NULL; |
| |
| /* |
| * We don't want stdout and stderr to be mixed up if both are |
| @@ -5642,7 +5642,7 @@ int main(int argc, char * const argv[]) |
| printf("Failed to get SMBIOS data from sysfs.\n"); |
| } |
| |
| - /* Next try EFI (ia64, Intel-based Mac) */ |
| + /* Next try EFI (ia64, Intel-based Mac, arm64) */ |
| efi = address_from_efi(&fp); |
| switch (efi) |
| { |
| @@ -5675,6 +5675,7 @@ int main(int argc, char * const argv[]) |
| goto done; |
| |
| memory_scan: |
| +#if defined __i386__ || defined __x86_64__ |
| if (!(opt.flags & FLAG_QUIET)) |
| printf("Scanning %s for entry point.\n", opt.devmem); |
| /* Fallback to memory scan (x86, x86_64) */ |
| @@ -5717,6 +5718,7 @@ memory_scan: |
| } |
| } |
| } |
| +#endif |
| |
| done: |
| if (!found && !(opt.flags & FLAG_QUIET)) |
| -- |
| cgit v1.2.1 |
| |