pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/sysutils
Module Name: pkgsrc
Committed By: bouyer
Date: Tue Apr 2 22:01:24 UTC 2024
Modified Files:
pkgsrc/sysutils/xentools415: Makefile distinfo
pkgsrc/sysutils/xentools418: Makefile distinfo
Added Files:
pkgsrc/sysutils/xentools415/patches:
patch-xen_common_libelf_libelf-loader.c
pkgsrc/sysutils/xentools418/patches:
patch-xen_common_libelf_libelf-loader.c
Log Message:
xentools415, xentools418: fix bug in BSD symbol table support for i386:
When computing the size of the ELF symbol table, the code use
sizeof(Elf64_Shdr) or sizeof(Elf32_Shdr) depending on the kernel being
loaded. But later when computing offsets, the code uses
sizeof(struct elf_sym_header) which contains a union of both Shdr. This result
in an overflow of 64 bytes. Fortunably the code checks the size being copied
with the allocated size and silently ignores the copy if there isn't enough
space. Fortunably as well, the allocated size is rounded up to the next page
boundary, so most of the time there is enough space. Unfortunably, the official
i386 GENERIC kernel from the 10.0 release has the right size to trigger
this bug.
Bump PKGREVISION.
To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 pkgsrc/sysutils/xentools415/Makefile
cvs rdiff -u -r1.14 -r1.15 pkgsrc/sysutils/xentools415/distinfo
cvs rdiff -u -r0 -r1.1 \
pkgsrc/sysutils/xentools415/patches/patch-xen_common_libelf_libelf-loader.c
cvs rdiff -u -r1.4 -r1.5 pkgsrc/sysutils/xentools418/Makefile
cvs rdiff -u -r1.2 -r1.3 pkgsrc/sysutils/xentools418/distinfo
cvs rdiff -u -r0 -r1.1 \
pkgsrc/sysutils/xentools418/patches/patch-xen_common_libelf_libelf-loader.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/sysutils/xentools415/Makefile
diff -u pkgsrc/sysutils/xentools415/Makefile:1.29 pkgsrc/sysutils/xentools415/Makefile:1.30
--- pkgsrc/sysutils/xentools415/Makefile:1.29 Mon Nov 20 21:23:03 2023
+++ pkgsrc/sysutils/xentools415/Makefile Tue Apr 2 22:01:23 2024
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.29 2023/11/20 21:23:03 bouyer Exp $
+# $NetBSD: Makefile,v 1.30 2024/04/02 22:01:23 bouyer Exp $
#
# VERSION is set in version.mk as it is shared with other packages
-PKGREVISION= 3
+PKGREVISION= 4
.include "version.mk"
PKGNAME= xentools415-${VERSION}
Index: pkgsrc/sysutils/xentools415/distinfo
diff -u pkgsrc/sysutils/xentools415/distinfo:1.14 pkgsrc/sysutils/xentools415/distinfo:1.15
--- pkgsrc/sysutils/xentools415/distinfo:1.14 Wed Nov 15 15:59:36 2023
+++ pkgsrc/sysutils/xentools415/distinfo Tue Apr 2 22:01:23 2024
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.14 2023/11/15 15:59:36 bouyer Exp $
+$NetBSD: distinfo,v 1.15 2024/04/02 22:01:23 bouyer Exp $
BLAKE2s (xen415/ipxe-988d2c13cdf0f0b4140685af35ced70ac5b3283c.tar.gz) = 67ded947316100f4f66fa61fe156baf1620db575450f4dc0dd8dcb323e57970b
SHA512 (xen415/ipxe-988d2c13cdf0f0b4140685af35ced70ac5b3283c.tar.gz) = d888e0e653727ee9895fa866d8895e6d23a568b4e9e8439db4c4d790996700c60b0655e3a3129e599736ec2b4f7b987ce79d625ba208f06665fced8bddf94403
@@ -70,4 +70,5 @@ SHA1 (patch-tools_xl_Makefile) = 76f401d
SHA1 (patch-xen_Makefile) = fe7450f929aca11049c52c4fe53818441f1dc2ee
SHA1 (patch-xen_Rules.mk) = c743dc63f51fc280d529a7d9e08650292c171dac
SHA1 (patch-xen_arch_x86_Makefile) = 99db5e673e367f2a6c8c4fe776b3889cfb3372b1
+SHA1 (patch-xen_common_libelf_libelf-loader.c) = 1b3d9e315aa6c218e6eec1cb9b5536956d5c689c
SHA1 (patch-xen_include_Makefile) = 71987b559a344b098b97e5a7439232ceda198798
Index: pkgsrc/sysutils/xentools418/Makefile
diff -u pkgsrc/sysutils/xentools418/Makefile:1.4 pkgsrc/sysutils/xentools418/Makefile:1.5
--- pkgsrc/sysutils/xentools418/Makefile:1.4 Tue Jan 16 19:49:52 2024
+++ pkgsrc/sysutils/xentools418/Makefile Tue Apr 2 22:01:24 2024
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.4 2024/01/16 19:49:52 brook Exp $
+# $NetBSD: Makefile,v 1.5 2024/04/02 22:01:24 bouyer Exp $
#
# VERSION is set in version.mk as it is shared with other packages
-#PKGREVISION= 1
+PKGREVISION= 1
.include "version.mk"
PKGNAME= xentools418-${VERSION:S/-//g}
Index: pkgsrc/sysutils/xentools418/distinfo
diff -u pkgsrc/sysutils/xentools418/distinfo:1.2 pkgsrc/sysutils/xentools418/distinfo:1.3
--- pkgsrc/sysutils/xentools418/distinfo:1.2 Sat Dec 30 18:52:38 2023
+++ pkgsrc/sysutils/xentools418/distinfo Tue Apr 2 22:01:24 2024
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.2 2023/12/30 18:52:38 gdt Exp $
+$NetBSD: distinfo,v 1.3 2024/04/02 22:01:24 bouyer Exp $
BLAKE2s (xen418/ipxe-1d1cf74a5e58811822bee4b3da3cff7282fcdfca.tar.gz) = 82256e7e5d45980590a6493e17a4e133ff63fa28f00aff1963db96371e702448
SHA512 (xen418/ipxe-1d1cf74a5e58811822bee4b3da3cff7282fcdfca.tar.gz) = e1c11e37f53aab0cc6a3ceaace0b8417f07009b1f20ff8572320895fef24f1a796ade041094a024eb24c988b9bed404c556a1fdde809bba89fb49f0e0ff45a57
@@ -63,4 +63,5 @@ SHA1 (patch-tools_qemu-xen_net_tap.c) =
SHA1 (patch-tools_xenpaging_xenpaging.c) = 3ade1afeb17210632ca350cdbb649f30d4697493
SHA1 (patch-tools_xl_Makefile) = 76f401d3f3dddb4fd48cf386494583db658e56b0
SHA1 (patch-xen_Makefile) = bba02be1c25c1a1cef44754602e073afc5de85eb
+SHA1 (patch-xen_common_libelf_libelf-loader.c) = 1b3d9e315aa6c218e6eec1cb9b5536956d5c689c
SHA1 (patch-xen_include_Makefile) = 5bdd9f7e3eda76285fff1f8aa9c32d2fa9e4a837
Added files:
Index: pkgsrc/sysutils/xentools415/patches/patch-xen_common_libelf_libelf-loader.c
diff -u /dev/null pkgsrc/sysutils/xentools415/patches/patch-xen_common_libelf_libelf-loader.c:1.1
--- /dev/null Tue Apr 2 22:01:24 2024
+++ pkgsrc/sysutils/xentools415/patches/patch-xen_common_libelf_libelf-loader.c Tue Apr 2 22:01:23 2024
@@ -0,0 +1,23 @@
+$NetBSD: patch-xen_common_libelf_libelf-loader.c,v 1.1 2024/04/02 22:01:23 bouyer Exp $
+
+Compute total symbol table with the same size as used to build the
+symbol table.
+This bug only shows up with 32bit guest kernels, and if the end of the
+symbol table ends less than 64 bytes from a page boundary. When this
+happens the string table is not copied, and the guest sees all symbols with
+empty names.
+
+--- xen/common/libelf/libelf-loader.c.orig 2023-11-16 22:44:21.000000000 +0100
++++ xen/common/libelf/libelf-loader.c 2024-04-02 17:12:05.322638541 +0200
+@@ -204,10 +204,8 @@
+ sz = sizeof(uint32_t);
+
+ /* Space for the ELF header and section headers */
+- sz += offsetof(struct elf_sym_header, elf_header.section) +
+- ELF_BSDSYM_SECTIONS * (elf_64bit(elf) ? sizeof(Elf64_Shdr) :
+- sizeof(Elf32_Shdr));
++ sz += sizeof(struct elf_sym_header);
+ sz = elf_round_up(elf, sz);
+
+ /*
+ * No need to search for the symtab section header again, it's handler
Index: pkgsrc/sysutils/xentools418/patches/patch-xen_common_libelf_libelf-loader.c
diff -u /dev/null pkgsrc/sysutils/xentools418/patches/patch-xen_common_libelf_libelf-loader.c:1.1
--- /dev/null Tue Apr 2 22:01:24 2024
+++ pkgsrc/sysutils/xentools418/patches/patch-xen_common_libelf_libelf-loader.c Tue Apr 2 22:01:24 2024
@@ -0,0 +1,23 @@
+$NetBSD: patch-xen_common_libelf_libelf-loader.c,v 1.1 2024/04/02 22:01:24 bouyer Exp $
+
+Compute total symbol table with the same size as used to build the
+symbol table.
+This bug only shows up with 32bit guest kernels, and if the end of the
+symbol table ends less than 64 bytes from a page boundary. When this
+happens the string table is not copied, and the guest sees all symbols with
+empty names.
+
+--- xen/common/libelf/libelf-loader.c.orig 2023-11-16 22:44:21.000000000 +0100
++++ xen/common/libelf/libelf-loader.c 2024-04-02 17:12:05.322638541 +0200
+@@ -204,10 +204,8 @@
+ sz = sizeof(uint32_t);
+
+ /* Space for the ELF header and section headers */
+- sz += offsetof(struct elf_sym_header, elf_header.section) +
+- ELF_BSDSYM_SECTIONS * (elf_64bit(elf) ? sizeof(Elf64_Shdr) :
+- sizeof(Elf32_Shdr));
++ sz += sizeof(struct elf_sym_header);
+ sz = elf_round_up(elf, sz);
+
+ /*
+ * No need to search for the symtab section header again, it's handler
Home |
Main Index |
Thread Index |
Old Index