File dmidecode-only-scan-dev-mem-for-entry-point-on-x86.patch of Package dmidecode

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
Git-commit: e12ec26e19e02281d3e7258c3aabb88a5cf5ec1d
Patch-mainline: yes

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(-)

--- dmidecode-3.2.orig/dmidecode.c	2019-08-26 14:35:22.767213766 +0200
+++ dmidecode-3.2/dmidecode.c	2019-08-26 14:35:26.209257695 +0200
@@ -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
@@ -5535,7 +5535,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
@@ -5639,7 +5639,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)
 	{
@@ -5672,6 +5672,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) */
@@ -5714,6 +5715,7 @@ int main(int argc, char * const argv[])
 			}
 		}
 	}
+#endif
 
 done:
 	if (!found && !(opt.flags & FLAG_QUIET))