diff options
author | Eric Andersen <andersen@codepoet.org> | 2004-04-06 12:04:14 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2004-04-06 12:04:14 +0000 |
commit | ba05e79815df6d521c39ce7d2dd7e495ccb6ef48 (patch) | |
tree | c05c52cca51982bc97061056eb8ed1105eca66ee /modutils/modprobe.c | |
parent | 3f47c453daa4509729fa8a54f58c0291099d01c4 (diff) | |
download | busybox-w32-ba05e79815df6d521c39ce7d2dd7e495ccb6ef48.tar.gz busybox-w32-ba05e79815df6d521c39ce7d2dd7e495ccb6ef48.tar.bz2 busybox-w32-ba05e79815df6d521c39ce7d2dd7e495ccb6ef48.zip |
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)
Diffstat (limited to 'modutils/modprobe.c')
-rw-r--r-- | modutils/modprobe.c | 4 |
1 files 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 ) | |||
306 | // fprintf ( stderr, "ALIAS: '%s' -> '%s'\n", alias, mod ); | 306 | // fprintf ( stderr, "ALIAS: '%s' -> '%s'\n", alias, mod ); |
307 | 307 | ||
308 | if ( !current ) { | 308 | if ( !current ) { |
309 | first = current = (struct dep_t *) xmalloc ( sizeof ( struct dep_t )); | 309 | first = current = (struct dep_t *) xcalloc ( 1, sizeof ( struct dep_t )); |
310 | } | 310 | } |
311 | else { | 311 | else { |
312 | current-> m_next = (struct dep_t *) xmalloc ( sizeof ( struct dep_t )); | 312 | current-> m_next = (struct dep_t *) xcalloc ( 1, sizeof ( struct dep_t )); |
313 | current = current-> m_next; | 313 | current = current-> m_next; |
314 | } | 314 | } |
315 | current-> m_module = bb_xstrdup ( alias ); | 315 | current-> m_module = bb_xstrdup ( alias ); |