summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorschwarze <schwarze@openbsd.org>2015-03-13 00:18:45 +0000
committerschwarze <schwarze@openbsd.org>2015-03-13 00:18:45 +0000
commita42eec62e21a23e7e9ae7deb45bffdb510d8acc9 (patch)
tree417ebb9cee187028100f9e39626d05e31da4dc22
parentwe're tagged for release; turn POOL_DEBUG back on. ok deraadt@ (diff)
downloadwireguard-openbsd-a42eec62e21a23e7e9ae7deb45bffdb510d8acc9.tar.xz
wireguard-openbsd-a42eec62e21a23e7e9ae7deb45bffdb510d8acc9.zip
Fix hardlink detection on platforms having padding in struct inodev,
typically 64bit platforms. This was basically broken since forever. Not only is the padding used, but it was used uninitialized. Problem reported by jmc@.
-rw-r--r--usr.bin/mandoc/mandocdb.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/usr.bin/mandoc/mandocdb.c b/usr.bin/mandoc/mandocdb.c
index 807938292fd..bb9b418c65a 100644
--- a/usr.bin/mandoc/mandocdb.c
+++ b/usr.bin/mandoc/mandocdb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mandocdb.c,v 1.138 2015/02/27 16:21:42 schwarze Exp $ */
+/* $OpenBSD: mandocdb.c,v 1.139 2015/03/13 00:18:45 schwarze Exp $ */
/*
* Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011-2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -924,6 +924,7 @@ mlink_add(struct mlink *mlink, const struct stat *st)
assert(NULL == ohash_find(&mlinks, slot));
ohash_insert(&mlinks, slot, mlink);
+ memset(&inodev, 0, sizeof(inodev)); /* Clear padding. */
inodev.st_ino = st->st_ino;
inodev.st_dev = st->st_dev;
slot = ohash_lookup_memory(&mpages, (char *)&inodev,