diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-01-30 09:03:11 -0500 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-01-30 09:03:11 -0500 |
commit | a208097c9091137908beaa1f1f261072df55d3fa (patch) | |
tree | 8818bfa6c19c4a43b7bb19431a442d3bdfa9a80e /src/spm.c | |
parent | 7c2b1baad8434f9f7b19efe48719942cb3bce4cd (diff) | |
download | spmc-a208097c9091137908beaa1f1f261072df55d3fa.tar.gz |
SEAD - memory leaks
Diffstat (limited to 'src/spm.c')
-rw-r--r-- | src/spm.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -79,7 +79,9 @@ int main(int argc, char *argv[], char *arge[]) { else if (strcmp(arg, "--cmd") == 0) { int c = argc - i; char **a = &argv[i]; - exit(internal_cmd(c, a)); + int retval = internal_cmd(c, a); + free_global_config(); + exit(retval); } else if (strcmp(arg, "-B") == 0 || strcmp(arg, "--build") == 0) { int c = argc - i; @@ -166,7 +168,8 @@ int main(int argc, char *argv[], char *arge[]) { runtime_set(rt, "PATH", "$SPM_BIN:$PATH"); runtime_set(rt, "MANPATH", "$SPM_MAN:$MANPATH"); - if (exists(join((char *[]) {spm_binpath, "gcc"}, DIRSEPS)) == 0) { + char *spm_ccpath = join((char *[]) {spm_binpath, "gcc"}, DIRSEPS); + if (exists(spm_ccpath) == 0) { runtime_set(rt, "CC", "$SPM_BIN/gcc"); } @@ -179,6 +182,7 @@ int main(int argc, char *argv[], char *arge[]) { free(spm_libpath); free(spm_datapath); free(spm_manpath); + free(spm_ccpath); if (RUNTIME_INSTALL) { Dependencies *deps = NULL; @@ -277,8 +281,8 @@ int main(int argc, char *argv[], char *arge[]) { runtime_free(rt); exit(errno); } - manifest_free(manifest); } + manifest_free(manifest); dep_free(&deps); } |