aboutsummaryrefslogtreecommitdiff
path: root/lib/resolve.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2020-03-26 02:15:59 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2020-03-26 02:15:59 -0400
commit37ec63ece45c7f27f576e1fb5911b55630125d03 (patch)
tree843d82c165c784997bedf2ad36f078f932b1643d /lib/resolve.c
parentd0925dcc2e34d6f9a8c554ca97c4d75784e6f69d (diff)
downloadspmc-37ec63ece45c7f27f576e1fb5911b55630125d03.tar.gz
Fix segfault caused by freeing records for no reason:
* split() returns the input string when no delimiters are found
Diffstat (limited to 'lib/resolve.c')
-rw-r--r--lib/resolve.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/resolve.c b/lib/resolve.c
index 1a4448f..5065ae9 100644
--- a/lib/resolve.c
+++ b/lib/resolve.c
@@ -38,7 +38,7 @@ ManifestPackage **resolve_dependencies(ManifestList *manifests, const char *spec
ManifestPackage *package = manifestlist_search(manifests, spec);
ManifestPackage *requirement = NULL;
- if (package == NULL) {
+ if (package == NULL || package->requirements == NULL) {
return requirements;
}
@@ -48,6 +48,7 @@ ManifestPackage **resolve_dependencies(ManifestList *manifests, const char *spec
fprintf(stderr, "ERROR: unable to resolve package via manifestlist_search(): '%s'\n", package->requirements[i]);
exit(1);
}
+
if (resolve_has_dependency(requirement->archive)) {
free(requirement);
} else {