summaryrefslogtreecommitdiffstats
path: root/loader/modules.c
diff options
context:
space:
mode:
authorErik Troan <ewt@redhat.com>1999-08-07 15:19:06 +0000
committerErik Troan <ewt@redhat.com>1999-08-07 15:19:06 +0000
commita2ed1fa10a0636b84e6a8d3839305edeeee35db1 (patch)
treed86ec15ad2fdd18045d26b052dc26b00f453567a /loader/modules.c
parentdf2e576c4fc86644f1b57b472e8767a7c917a3e0 (diff)
downloadanaconda-a2ed1fa10a0636b84e6a8d3839305edeeee35db1.tar.gz
anaconda-a2ed1fa10a0636b84e6a8d3839305edeeee35db1.tar.xz
anaconda-a2ed1fa10a0636b84e6a8d3839305edeeee35db1.zip
free module argument lists properly
don't over-increment numModules set weLoaded properly
Diffstat (limited to 'loader/modules.c')
-rw-r--r--loader/modules.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/loader/modules.c b/loader/modules.c
index 0ffa87d53..c9fff21c6 100644
--- a/loader/modules.c
+++ b/loader/modules.c
@@ -69,10 +69,15 @@ int mlReadLoadedList(moduleList * mlp) {
void mlFreeList(moduleList ml) {
int i;
+ int j;
for (i = 0; i < ml->numModules; i++) {
free(ml->mods[i].name);
- if (ml->mods[i].args) free(ml->mods[i].args);
+ if (ml->mods[i].args) {
+ for (j = 0; ml->mods[j].args[j]; j++)
+ free(ml->mods[i].args[j]);
+ free(ml->mods[i].args);
+ }
}
free(ml);
}
@@ -196,9 +201,9 @@ int mlLoadModule(char * modName, moduleList modLoaded,
rc = insmod(fileName, NULL);
if (!rc) {
- modLoaded->mods[modLoaded->numModules++].name = strdup(modName);
- modLoaded->mods[modLoaded->numModules++].args = NULL;
- modLoaded->mods[modLoaded->numModules++].weLoaded = 0;
+ modLoaded->mods[modLoaded->numModules].name = strdup(modName);
+ modLoaded->mods[modLoaded->numModules].args = NULL;
+ modLoaded->mods[modLoaded->numModules++].weLoaded = 1;
}
return rc;