diff options
Diffstat (limited to 'debian/patches')
| -rw-r--r-- | debian/patches/0005-build.patch | 25 | ||||
| -rw-r--r-- | debian/patches/0105-dmidecode-avoid-sigbus.patch | 50 | ||||
| -rw-r--r-- | debian/patches/0110-nosysfs.patch | 32 | ||||
| -rw-r--r-- | debian/patches/0115-no_smbios_DMI_entry_point.patch | 55 | ||||
| -rw-r--r-- | debian/patches/0120-return_actual_data_size.patch | 103 | ||||
| -rw-r--r-- | debian/patches/0125-use_read_file_to_read_DMI_table_from_sysfs.patch | 78 | ||||
| -rw-r--r-- | debian/patches/0130-use_DWORD_for_table_max_size.patch | 27 | ||||
| -rw-r--r-- | debian/patches/0135-hide_fixup_msg.patch | 46 | ||||
| -rw-r--r-- | debian/patches/0140-Fix_scan_entry_point.patch | 54 | ||||
| -rw-r--r-- | debian/patches/series | 9 | 
10 files changed, 0 insertions, 479 deletions
| diff --git a/debian/patches/0005-build.patch b/debian/patches/0005-build.patch deleted file mode 100644 index b9361eb..0000000 --- a/debian/patches/0005-build.patch +++ /dev/null @@ -1,25 +0,0 @@ -Author: Daniel Baumann <daniel.baumann@progress-technologies.net> -Description: Avoid overwriting build environment rather than to just extend it. - -Index: trunk/Makefile -=================================================================== ---- trunk.orig/Makefile -+++ trunk/Makefile -@@ -13,7 +13,7 @@ - # -  - CC      = gcc --CFLAGS  = -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \ -+CFLAGS += -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \ -           -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef -  - # Let lseek and mmap support 64-bit wide offsets -@@ -27,7 +27,7 @@ CFLAGS += -O2 - #CFLAGS += -g -  - # Pass linker flags here --LDFLAGS = -+#LDFLAGS = -  - DESTDIR = - prefix  = /usr/local diff --git a/debian/patches/0105-dmidecode-avoid-sigbus.patch b/debian/patches/0105-dmidecode-avoid-sigbus.patch deleted file mode 100644 index 518d972..0000000 --- a/debian/patches/0105-dmidecode-avoid-sigbus.patch +++ /dev/null @@ -1,50 +0,0 @@ -Description: Avoid SIGBUS on mmap failure - mmap will fail with SIGBUS if trying to map a non-existent portion of - a file. While this should never happen with /dev/mem, it can happen if - passing a regular file with option -d. While people should no longer - do that, failure gracefully seems better than crashing. So check for - the file size before calling mmap. -Author: Jean Delvare <jdelvare@suse.de> -Origin: https://savannah.nongnu.org/bugs/download.php?file_id=35008 -Bug: https://savannah.nongnu.org/bugs/index.php?46066 -Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=796963 -Last-Update: 2015-10-01 ----- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- dmidecode.orig/util.c	2015-09-29 11:27:02.136566009 +0200 -+++ dmidecode/util.c	2015-09-29 11:37:24.746191083 +0200 -@@ -152,6 +152,7 @@ void *mem_chunk(off_t base, size_t len, - 	void *p; - 	int fd; - #ifdef USE_MMAP -+	struct stat statbuf; - 	off_t mmoffset; - 	void *mmp; - #endif -@@ -169,6 +170,26 @@ void *mem_chunk(off_t base, size_t len, - 	} -  - #ifdef USE_MMAP -+	if (fstat(fd, &statbuf) == -1) -+	{ -+		fprintf(stderr, "%s: ", devmem); -+		perror("stat"); -+		free(p); -+		return NULL; -+	} -+ -+	/* -+	 * mmap() will fail with SIGBUS if trying to map beyond the end of -+	 * the file. -+	 */ -+	if (S_ISREG(statbuf.st_mode) && base + (off_t)len > statbuf.st_size) -+	{ -+		fprintf(stderr, "mmap: Can't map beyond end of file %s\n", -+			devmem); -+		free(p); -+		return NULL; -+	} -+ - #ifdef _SC_PAGESIZE - 	mmoffset = base % sysconf(_SC_PAGESIZE); - #else diff --git a/debian/patches/0110-nosysfs.patch b/debian/patches/0110-nosysfs.patch deleted file mode 100644 index 04c710a..0000000 --- a/debian/patches/0110-nosysfs.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 33b5aafc6ee6b5de9f2526fb1cf4b14d1e16e4f0 Mon Sep 17 00:00:00 2001 -From: Roy Franz <roy.franz@linaro.org> -Date: Thu, 01 Oct 2015 06:41:43 +0000 -Subject: Add "--no-sysfs" option description to -h output - -A description of --no-sysfs was not added to the output of "-h" when -the feature was added, so add it now. ---- -Index: trunk/CHANGELOG -=================================================================== ---- trunk.orig/CHANGELOG -+++ trunk/CHANGELOG -@@ -1,3 +1,7 @@ -+2015-10-01  Roy Franz  <roy.franz@linaro.org> -+ -+	* dmiopt.c: Add "--no-sysfs" option description to -h output. -+ - 2015-09-03  Jean Delvare  <jdelvare@suse.de> -  - 	* version.h: Set version to 3.0. -Index: trunk/dmiopt.c -=================================================================== ---- trunk.orig/dmiopt.c -+++ trunk/dmiopt.c -@@ -314,6 +314,7 @@ void print_help(void) - 		" -u, --dump             Do not decode the entries\n" - 		"     --dump-bin FILE    Dump the DMI data to a binary file\n" - 		"     --from-dump FILE   Read the DMI data from a binary file\n" -+		"     --no-sysfs         Do not attempt to read DMI data from sysfs files\n" - 		" -V, --version          Display the version and exit\n"; -  - 	printf("%s", help); diff --git a/debian/patches/0115-no_smbios_DMI_entry_point.patch b/debian/patches/0115-no_smbios_DMI_entry_point.patch deleted file mode 100644 index ecbfc11..0000000 --- a/debian/patches/0115-no_smbios_DMI_entry_point.patch +++ /dev/null @@ -1,55 +0,0 @@ -From bf7bad24ce141dab5b5acc3ffb98ce5fe4a8e0f9 Mon Sep 17 00:00:00 2001 -From: Xie XiuQi <xiexiuqi@huawei.com> -Date: Wed, 21 Oct 2015 13:12:50 +0000 -Subject: Fix 'No SMBIOS nor DMI entry point found' on SMBIOS3 - -address_from_efi may return a SMBIOS or SMBIOS3 format entry -point, so add this condition. ---- -Index: trunk/AUTHORS -=================================================================== ---- trunk.orig/AUTHORS -+++ trunk/AUTHORS -@@ -19,6 +19,7 @@ Jarod Wilson <jarod@redhat.com> - Anton Arapov <anton@redhat.com> - Roy Franz <roy.franz@linaro.org> - Tyler Bell <tyler.bell@hp.com> -+Xie XiuQi <xiexiuqi@huawei.com> -  - MANY THANKS TO (IN CHRONOLOGICAL ORDER) - Werner Heuser -Index: trunk/CHANGELOG -=================================================================== ---- trunk.orig/CHANGELOG -+++ trunk/CHANGELOG -@@ -1,3 +1,7 @@ -+2015-10-21  Xie XiuQi  <xiexiuqi@huawei.com> -+ -+	* dmidecode.c: Handle SMBIOS 3.0 entry points on EFI systems. -+ - 2015-10-01  Roy Franz  <roy.franz@linaro.org> -  - 	* dmiopt.c: Add "--no-sysfs" option description to -h output. -Index: trunk/dmidecode.c -=================================================================== ---- trunk.orig/dmidecode.c -+++ trunk/dmidecode.c -@@ -4864,8 +4864,16 @@ int main(int argc, char * const argv[]) - 		goto exit_free; - 	} -  --	if (smbios_decode(buf, opt.devmem, 0)) --		found++; -+	if (memcmp(buf, "_SM3_", 5) == 0) -+	{ -+		if (smbios3_decode(buf, opt.devmem, 0)) -+			found++; -+	} -+	else if (memcmp(buf, "_SM_", 4) == 0) -+	{ -+		if (smbios_decode(buf, opt.devmem, 0)) -+			found++; -+	} - 	goto done; -  - memory_scan: diff --git a/debian/patches/0120-return_actual_data_size.patch b/debian/patches/0120-return_actual_data_size.patch deleted file mode 100644 index dc539d9..0000000 --- a/debian/patches/0120-return_actual_data_size.patch +++ /dev/null @@ -1,103 +0,0 @@ -From de9a74e1c60210bee229fcf55b1678a99d1b44dd Mon Sep 17 00:00:00 2001 -From: Jean Delvare <jdelvare@suse.de> -Date: Mon, 02 Nov 2015 08:45:26 +0000 -Subject: Let read_file return the actual data size - -Let read_file return the actual data size to the caller. This gives -the caller the possibility to check that the data size is as expected -and large enough for the purpose, and report to the user if not. ---- -Index: trunk/CHANGELOG -=================================================================== ---- trunk.orig/CHANGELOG -+++ trunk/CHANGELOG -@@ -1,3 +1,8 @@ -+2015-11-02  Jean Delvare  <jdelvare@suse.de> -+ -+	* dmidecode.c, util.c, util.h: Let read_file return the actual data -+	  size. -+ - 2015-10-21  Xie XiuQi  <xiexiuqi@huawei.com> -  - 	* dmidecode.c: Handle SMBIOS 3.0 entry points on EFI systems. -Index: trunk/dmidecode.c -=================================================================== ---- trunk.orig/dmidecode.c -+++ trunk/dmidecode.c -@@ -4748,6 +4748,7 @@ int main(int argc, char * const argv[]) - 	int ret = 0;                /* Returned value */ - 	int found = 0; - 	off_t fp; -+	size_t size; - 	int efi; - 	u8 *buf; -  -@@ -4817,8 +4818,9 @@ int main(int argc, char * const argv[]) - 	 * contain one of several types of entry points, so read enough for - 	 * the largest one, then determine what type it contains. - 	 */ -+	size = 0x20; - 	if (!(opt.flags & FLAG_NO_SYSFS) --	 && (buf = read_file(0x20, SYS_ENTRY_FILE)) != NULL) -+	 && (buf = read_file(&size, SYS_ENTRY_FILE)) != NULL) - 	{ - 		if (!(opt.flags & FLAG_QUIET)) - 			printf("Getting SMBIOS data from sysfs.\n"); -Index: trunk/util.c -=================================================================== ---- trunk.orig/util.c -+++ trunk/util.c -@@ -94,10 +94,11 @@ int checksum(const u8 *buf, size_t len) -  * needs to be freed by the caller. -  * This provides a similar usage model to mem_chunk() -  * -- * Returns pointer to buffer of max_len bytes, or NULL on error -+ * Returns pointer to buffer of max_len bytes, or NULL on error, and -+ * sets max_len to the length actually read. -  * -  */ --void *read_file(size_t max_len, const char *filename) -+void *read_file(size_t *max_len, const char *filename) - { - 	int fd; - 	size_t r2 = 0; -@@ -115,7 +116,7 @@ void *read_file(size_t max_len, const ch - 		return(NULL); - 	} -  --	if ((p = malloc(max_len)) == NULL) -+	if ((p = malloc(*max_len)) == NULL) - 	{ - 		perror("malloc"); - 		return NULL; -@@ -123,7 +124,7 @@ void *read_file(size_t max_len, const ch -  - 	do - 	{ --		r = read(fd, p + r2, max_len - r2); -+		r = read(fd, p + r2, *max_len - r2); - 		if (r == -1) - 		{ - 			if (errno != EINTR) -@@ -140,6 +141,8 @@ void *read_file(size_t max_len, const ch - 	while (r != 0); -  - 	close(fd); -+	*max_len = r2; -+ - 	return p; - } -  -Index: trunk/util.h -=================================================================== ---- trunk.orig/util.h -+++ trunk/util.h -@@ -25,7 +25,7 @@ - #define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0])) -  - int checksum(const u8 *buf, size_t len); --void *read_file(size_t len, const char *filename); -+void *read_file(size_t *len, const char *filename); - void *mem_chunk(off_t base, size_t len, const char *devmem); - int write_dump(size_t base, size_t len, const void *data, const char *dumpfile, int add); - u64 u64_range(u64 start, u64 end); diff --git a/debian/patches/0125-use_read_file_to_read_DMI_table_from_sysfs.patch b/debian/patches/0125-use_read_file_to_read_DMI_table_from_sysfs.patch deleted file mode 100644 index fe01f63..0000000 --- a/debian/patches/0125-use_read_file_to_read_DMI_table_from_sysfs.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 364055211b1956539c6a6268e111e244e1292c8c Mon Sep 17 00:00:00 2001 -From: Jean Delvare <jdelvare@suse.de> -Date: Mon, 02 Nov 2015 08:45:31 +0000 -Subject: dmidecode: Use read_file() to read the DMI table from sysfs - -We shouldn't use mem_chunk() to read the DMI table from sysfs. This -will fail for SMBIOS v3 implementations which specify a maximum length -for the table rather than its exact length. The kernel will trim the -table to the actual length, so the DMI file will be shorter than the -length announced in entry point. - -read_file() fits the bill in this case, as it deals with end of file -nicely. - -This also helps with corrupted DMI tables, as the kernel will not -export the part of the table that it wasn't able to parse, effectively -trimming it. - -This fixes bug #46176: -https://savannah.nongnu.org/bugs/?46176 -Unexpected end of file error ---- -Index: trunk/CHANGELOG -=================================================================== ---- trunk.orig/CHANGELOG -+++ trunk/CHANGELOG -@@ -2,6 +2,9 @@ -  - 	* dmidecode.c, util.c, util.h: Let read_file return the actual data - 	  size. -+	* dmidecode.c: Use read_file to read the DMI table from sysfs. -+	  This fixes Savannah bug #46176: -+	  https://savannah.nongnu.org/bugs/?46176 -  - 2015-10-21  Xie XiuQi  <xiexiuqi@huawei.com> -  -Index: trunk/dmidecode.c -=================================================================== ---- trunk.orig/dmidecode.c -+++ trunk/dmidecode.c -@@ -4521,16 +4521,29 @@ static void dmi_table(off_t base, u32 le - 		printf("\n"); - 	} -  --	/* --	 * When we are reading the DMI table from sysfs, we want to print --	 * the address of the table (done above), but the offset of the --	 * data in the file is 0.  When reading from /dev/mem, the offset --	 * in the file is the address. --	 */ - 	if (flags & FLAG_NO_FILE_OFFSET) --		base = 0; -+	{ -+		/* -+		 * When reading from sysfs, the file may be shorter than -+		 * announced. For SMBIOS v3 this is expcted, as we only know -+		 * the maximum table size, not the actual table size. For older -+		 * implementations (and for SMBIOS v3 too), this would be the -+		 * result of the kernel truncating the table on parse error. -+		 */ -+		size_t size = len; -+		buf = read_file(&size, devmem); -+		if (!(opt.flags & FLAG_QUIET) && num && size != (size_t)len) -+		{ -+			printf("Wrong DMI structures length: %u bytes " -+				"announced, only %lu bytes available.\n", -+				len, (unsigned long)size); -+		} -+		len = size; -+	} -+	else -+		buf = mem_chunk(base, len, devmem); -  --	if ((buf = mem_chunk(base, len, devmem)) == NULL) -+	if (buf == NULL) - 	{ - 		fprintf(stderr, "Table is unreachable, sorry." - #ifndef USE_MMAP diff --git a/debian/patches/0130-use_DWORD_for_table_max_size.patch b/debian/patches/0130-use_DWORD_for_table_max_size.patch deleted file mode 100644 index 715d137..0000000 --- a/debian/patches/0130-use_DWORD_for_table_max_size.patch +++ /dev/null @@ -1,27 +0,0 @@ -From ab02b117511230e46bbef7febbd854b9c832c13c Mon Sep 17 00:00:00 2001 -From: Xie XiuQi <xiexiuqi@huawei.com> -Date: Mon, 01 Feb 2016 08:30:31 +0000 -Subject: Use DWORD for Structure table maximum size in SMBIOS3 - -0Ch DWORD "Structure table maximum size" - -Maximum size of SMBIOS Structure Table, pointed to by -the Structure Table Address, in bytes. The actual size is -guaranteed to be less or equal to the maximum size. - -Signed-off-by: Xie XiuQi <xiexiuqi@huawei.com> -Signed-off-by: Jean Delvare <jdelvare@suse.de> ---- -Index: trunk/dmidecode.c -=================================================================== ---- trunk.orig/dmidecode.c -+++ trunk/dmidecode.c -@@ -4612,7 +4612,7 @@ static int smbios3_decode(u8 *buf, const - 	} -  - 	dmi_table(((off_t)offset.h << 32) | offset.l, --		  WORD(buf + 0x0C), 0, ver, devmem, flags | FLAG_STOP_AT_EOT); -+		  DWORD(buf + 0x0C), 0, ver, devmem, flags | FLAG_STOP_AT_EOT); -  - 	if (opt.flags & FLAG_DUMP_BIN) - 	{ diff --git a/debian/patches/0135-hide_fixup_msg.patch b/debian/patches/0135-hide_fixup_msg.patch deleted file mode 100644 index ff3122c..0000000 --- a/debian/patches/0135-hide_fixup_msg.patch +++ /dev/null @@ -1,46 +0,0 @@ -From cff11afa886a0147d734b650755d232b5e7f2099 Mon Sep 17 00:00:00 2001 -From: Jean Delvare <jdelvare@suse.de> -Date: Tue, 03 May 2016 13:32:21 +0000 -Subject: dmidecode: Hide irrelevant fixup message - -Only display the message about type 34 length fixup if the entry in -question is going to be displayed. Otherwise it's only confusing. - -This fixes bug #109024: -http://savannah.nongnu.org/support/?109024 - -Fixes: 3f70b3515d91 ("dmidecode: Fix up invalid DMI type 34 structure length") ---- -Index: trunk/dmidecode.c -=================================================================== ---- trunk.orig/dmidecode.c -+++ trunk/dmidecode.c -@@ -2946,7 +2946,7 @@ static void dmi_64bit_memory_error_addre -  * first 5 characters of the device name to be trimmed. It's easy to -  * check and fix, so do it, but warn. -  */ --static void dmi_fixup_type_34(struct dmi_header *h) -+static void dmi_fixup_type_34(struct dmi_header *h, int display) - { - 	u8 *p = h->data; -  -@@ -2954,7 +2954,9 @@ static void dmi_fixup_type_34(struct dmi - 	if (h->length == 0x10 - 	 && is_printable(p + 0x0B, 0x10 - 0x0B)) - 	{ --		printf("Invalid entry length (%u). Fixed up to %u.\n", 0x10, 0x0B); -+		if (!(opt.flags & FLAG_QUIET) && display) -+			printf("Invalid entry length (%u). Fixed up to %u.\n", -+				0x10, 0x0B); - 		h->length = 0x0B; - 	} - } -@@ -4443,7 +4445,7 @@ static void dmi_table_decode(u8 *buf, u3 -  - 		/* Fixup a common mistake */ - 		if (h.type == 34) --			dmi_fixup_type_34(&h); -+			dmi_fixup_type_34(&h, display); -  - 		/* look for the next handle */ - 		next = data + h.length; diff --git a/debian/patches/0140-Fix_scan_entry_point.patch b/debian/patches/0140-Fix_scan_entry_point.patch deleted file mode 100644 index 4183af5..0000000 --- a/debian/patches/0140-Fix_scan_entry_point.patch +++ /dev/null @@ -1,54 +0,0 @@ -Description: Cherry picked fix Only scan /dev/mem for entry point on x86 -Author: <name and email of author, optional> -Origin: upstream, http://git.savannah.nongnu.org/cgit/dmidecode.git/commit/?id=e12ec26e19e02281d3e7258c3aabb88a5cf5ec1d -Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=946911 -Last-Update: 2019-12-19 ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ -Index: trunk/dmidecode.c -=================================================================== ---- trunk.orig/dmidecode.c -+++ trunk/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 -@@ -5534,7 +5534,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 -@@ -5638,7 +5638,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) - 	{ -@@ -5671,6 +5671,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) */ -@@ -5713,6 +5714,7 @@ memory_scan: - 			} - 		} - 	} -+#endif -  - done: - 	if (!found && !(opt.flags & FLAG_QUIET)) diff --git a/debian/patches/series b/debian/patches/series index 29b56d5..56bdeac 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -2,12 +2,3 @@  0150-Fix_crash.patch  0100-ansi-c.patch  0001-hurd.patch -#0005-build.patch -#0105-dmidecode-avoid-sigbus.patch -#0110-nosysfs.patch -#0115-no_smbios_DMI_entry_point.patch -#0120-return_actual_data_size.patch -#0125-use_read_file_to_read_DMI_table_from_sysfs.patch -#0130-use_DWORD_for_table_max_size.patch -#0135-hide_fixup_msg.patch -#0140-Fix_scan_entry_point.patch | 
