diff options
author | Erik Troan <ewt@redhat.com> | 1999-08-07 15:19:06 +0000 |
---|---|---|
committer | Erik Troan <ewt@redhat.com> | 1999-08-07 15:19:06 +0000 |
commit | a2ed1fa10a0636b84e6a8d3839305edeeee35db1 (patch) | |
tree | d86ec15ad2fdd18045d26b052dc26b00f453567a /loader/modules.c | |
parent | df2e576c4fc86644f1b57b472e8767a7c917a3e0 (diff) | |
download | anaconda-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.c | 13 |
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; |