diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2015-03-13 00:19:41 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2015-03-13 00:19:41 +0000 |
commit | da19f83a0a1e7d90a16cdddde0cfc118f0f2856e (patch) | |
tree | 059dc311d89273c46f9242606342e141c298a797 | |
parent | fbdab4dd620059bb1b92e6ece99e796d62affbd6 (diff) | |
download | mandoc-da19f83a0a1e7d90a16cdddde0cfc118f0f2856e.tar.gz mandoc-da19f83a0a1e7d90a16cdddde0cfc118f0f2856e.tar.zst mandoc-da19f83a0a1e7d90a16cdddde0cfc118f0f2856e.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-- | mandocdb.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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 <kristaps@bsd.lv> * Copyright (c) 2011-2015 Ingo Schwarze <schwarze@openbsd.org> @@ -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, |