From da19f83a0a1e7d90a16cdddde0cfc118f0f2856e Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Fri, 13 Mar 2015 00:19:41 +0000 Subject: 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@. --- mandocdb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mandocdb.c b/mandocdb.c index 9270e5cd..fed11e9f 100644 --- a/mandocdb.c +++ b/mandocdb.c @@ -1,4 +1,4 @@ -/* $Id: mandocdb.c,v 1.185 2015/02/27 16:22:09 schwarze Exp $ */ +/* $Id: mandocdb.c,v 1.186 2015/03/13 00:19:41 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons * Copyright (c) 2011-2015 Ingo Schwarze @@ -942,6 +942,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, -- cgit v1.2.3-56-ge451