summaryrefslogtreecommitdiffstats
path: root/usr.sbin/kvm_mkdb
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2013-01-29 22:39:06 +0000
committermiod <miod@openbsd.org>2013-01-29 22:39:06 +0000
commit106d15258587e01def2ecd6d915232ee598d4208 (patch)
tree4729f5fb7053c87b58fe3006f4ad88ba155c064e /usr.sbin/kvm_mkdb
parentsync (diff)
downloadwireguard-openbsd-106d15258587e01def2ecd6d915232ee598d4208.tar.xz
wireguard-openbsd-106d15258587e01def2ecd6d915232ee598d4208.zip
Allow for a kernel linked at address zero; ok guenther@ millert@
Diffstat (limited to 'usr.sbin/kvm_mkdb')
-rw-r--r--usr.sbin/kvm_mkdb/nlist.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/usr.sbin/kvm_mkdb/nlist.c b/usr.sbin/kvm_mkdb/nlist.c
index 0cdfe94b26c..267a2bda9b0 100644
--- a/usr.sbin/kvm_mkdb/nlist.c
+++ b/usr.sbin/kvm_mkdb/nlist.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nlist.c,v 1.40 2012/04/06 18:06:40 deraadt Exp $ */
+/* $OpenBSD: nlist.c,v 1.41 2013/01/29 22:39:06 miod Exp $ */
/*-
* Copyright (c) 1990, 1993
@@ -333,7 +333,8 @@ __elf_knlist(int fd, DB *db, int ksyms)
goto done;
}
- symstrsize = symsize = kernvma = 0;
+ symstrsize = symsize = 0;
+ kernvma = (u_long)-1; /* 0 is a valid value (at least on hp300) */
for (i = 0; i < eh.e_shnum; i++) {
if (sh[i].sh_type == SHT_STRTAB) {
for (j = 0; j < eh.e_shnum; j++)
@@ -352,7 +353,7 @@ __elf_knlist(int fd, DB *db, int ksyms)
}
}
- if (!symstrsize || !symsize || !kernvma) {
+ if (symstrsize == 0 || symsize == 0 || kernvma == (u_long)-1) {
fmterr = "corrupt file";
error = -1;
goto done;