# this patch is from Mark Hatle <mark.hatle@windriver.com>, who  ran into 
# a random segfault using the latest module-init-tools (3.12) and finally
# trace back to depmod.c:grab_module, which appears that the new malloc(...) 
# setups up things, but never clears the memory that was just allocated.
#
# Kevin Tian <kevin.tian@intel.com>, 2010-08-06

diff --git a/depmod.c b/depmod.c
index 647e5e6..46e03e0 100644
--- a/depmod.c
+++ b/depmod.c
@@ -313,6 +313,7 @@ static struct module *grab_module(const char *dirname, const char *filename)
 
 	new = NOFAIL(malloc(sizeof(*new)
 			    + strlen(dirname?:"") + 1 + strlen(filename) + 1));
+	memset(new, 0x00, sizeof(*new) + strlen(dirname?:"") + 1 + strlen(filename) + 1);
 	if (dirname)
 		sprintf(new->pathname, "%s/%s", dirname, filename);
 	else
