From 61b038acccba5cceb0e2c8a4662b3a40f4a29493 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 14 Nov 2003 02:49:19 +0000 Subject: Steven Seeger writes: Hey guys. I've found a bug in modprobe where it generates bad strings and makes sytem calls with them. The following patch seems to have fixed the problem. It is rather inherited elsewhere, as there seems to be incorrect entries in the list which results in more dependencies than really exist for a given call to mod_process. But, this patch prevents the bad text from going to the screen. You will notice there are cases where lcmd goes unmodified before calling system. Please consider the following patch. Thanks. -Steve --- modutils/modprobe.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'modutils/modprobe.c') diff --git a/modutils/modprobe.c b/modutils/modprobe.c index 07cbb6f..d48f36e 100644 --- a/modutils/modprobe.c +++ b/modutils/modprobe.c @@ -352,6 +352,7 @@ static int mod_process ( struct mod_list_t *list, int do_insert ) int rc = 1; while ( list ) { + *lcmd = '\0'; if ( do_insert ) { if (already_loaded (list->m_module) != 1) snprintf ( lcmd, sizeof( lcmd ) - 1, "insmod %s %s %s %s %s", do_syslog ? "-s" : "", autoclean ? "-k" : "", quiet ? "-q" : "", list-> m_module, list-> m_options ? list-> m_options : "" ); @@ -362,7 +363,7 @@ static int mod_process ( struct mod_list_t *list, int do_insert ) if ( verbose ) printf ( "%s\n", lcmd ); - if ( !show_only ) { + if ( !show_only && *lcmd) { int rc2 = system ( lcmd ); if (do_insert) rc = rc2; /* only last module matters */ else if (!rc2) rc = 0; /* success if remove any mod */ -- cgit v1.1