Module Name: src
Committed By: manu
Date: Fri Oct 18 01:19:00 UTC 2019
Modified Files:
src/sys/arch/i386/i386: multiboot.c
Log Message:
Fix multiboot1 kernel symbol load
ELF_Shdr's sh_type field is a value, not a flag field
To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/sys/arch/i386/i386/multiboot.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/i386/i386/multiboot.c
diff -u src/sys/arch/i386/i386/multiboot.c:1.24 src/sys/arch/i386/i386/multiboot.c:1.25
--- src/sys/arch/i386/i386/multiboot.c:1.24 Thu Nov 8 06:23:48 2018
+++ src/sys/arch/i386/i386/multiboot.c Fri Oct 18 01:19:00 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: multiboot.c,v 1.24 2018/11/08 06:23:48 msaitoh Exp $ */
+/* $NetBSD: multiboot.c,v 1.25 2019/10/18 01:19:00 manu Exp $ */
/*-
* Copyright (c) 2005, 2006 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: multiboot.c,v 1.24 2018/11/08 06:23:48 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: multiboot.c,v 1.25 2019/10/18 01:19:00 manu Exp $");
#include "opt_multiboot.h"
@@ -302,14 +302,14 @@ copy_syms(struct multiboot_info *mi)
shdrp = &((Elf32_Shdr *)mi->mi_elfshdr_addr)[i];
- if ((shdrp->sh_type & SHT_SYMTAB) &&
+ if ((shdrp->sh_type == SHT_SYMTAB) &&
shdrp->sh_link != SHN_UNDEF) {
Elf32_Shdr *shdrp2;
shdrp2 = &((Elf32_Shdr *)mi->mi_elfshdr_addr)
[shdrp->sh_link];
- if (shdrp2->sh_type & SHT_STRTAB) {
+ if (shdrp2->sh_type == SHT_STRTAB) {
symtabp = shdrp;
strtabp = shdrp2;
}