aboutsummaryrefslogtreecommitdiff
path: root/src/mirrors.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2020-01-28 21:42:55 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2020-01-28 21:42:55 -0500
commit7c2b1baad8434f9f7b19efe48719942cb3bce4cd (patch)
tree79666a768eb3392ddea57a78c57531d00a145769 /src/mirrors.c
parent8b06e3e66a4cf26c02f9e0175263e1a561186c1b (diff)
downloadspmc-7c2b1baad8434f9f7b19efe48719942cb3bce4cd.tar.gz
Fix more memory leaks:
Add ability to free ManifestPackage structure Fix bug: manifest_search pointer got free()ed accidentally.
Diffstat (limited to 'src/mirrors.c')
-rw-r--r--src/mirrors.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mirrors.c b/src/mirrors.c
index d551842..2275be4 100644
--- a/src/mirrors.c
+++ b/src/mirrors.c
@@ -70,6 +70,16 @@ char **mirror_list(const char *filename) {
return result;
}
+void mirror_list_free(char **m) {
+ if (m == NULL) {
+ return;
+ }
+ for (size_t i = 0; m[i] != NULL; i++) {
+ free(m[i]);
+ }
+ free(m);
+}
+
void mirror_clone(Manifest *info, char *_dest) {
char *dest = NULL;
if (endswith(_dest, SPM_GLOBAL.repo_target) != 0) {
@@ -96,7 +106,7 @@ void mirror_clone(Manifest *info, char *_dest) {
char *checksum = sha256sum(path);
if (strcmp(checksum, info->packages[i]->checksum_sha256) == 0) {
printf("Skipped: %s\n", archive);
- //free(checksum);
+ free(checksum);
free(archive);
free(path);
continue;