From 0f7d540a96e9594d8bb84a101d5822d20592427e Mon Sep 17 00:00:00 2001 From: andersen Date: Tue, 6 Apr 2004 12:04:14 +0000 Subject: Michael Tokarev, mjt at tls dot msk dot ru writes: Initialize all fields of struct dep_t. Without that, e.g. `busybox modprobe -v char-major-10-144' *sometimes* fails this way (strace): write(1, "insmod nvram `\213\f\10\n", 21) = 21 Note the garbage after module name which is taken from the m_options field, which is not initialized in the alias reading/parsing part. (Shell properly complains to this command, telling it can't find the closing backtick) git-svn-id: svn://busybox.net/trunk/busybox@8698 69ca8d6d-28ef-0310-b511-8ec308f3f277 --- modutils/modprobe.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modutils/modprobe.c b/modutils/modprobe.c index c6a83553f..2b90eb019 100644 --- a/modutils/modprobe.c +++ b/modutils/modprobe.c @@ -306,10 +306,10 @@ static struct dep_t *build_dep ( void ) // fprintf ( stderr, "ALIAS: '%s' -> '%s'\n", alias, mod ); if ( !current ) { - first = current = (struct dep_t *) xmalloc ( sizeof ( struct dep_t )); + first = current = (struct dep_t *) xcalloc ( 1, sizeof ( struct dep_t )); } else { - current-> m_next = (struct dep_t *) xmalloc ( sizeof ( struct dep_t )); + current-> m_next = (struct dep_t *) xcalloc ( 1, sizeof ( struct dep_t )); current = current-> m_next; } current-> m_module = bb_xstrdup ( alias ); -- cgit v1.2.3-55-g6feb