From 37ec63ece45c7f27f576e1fb5911b55630125d03 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Thu, 26 Mar 2020 02:15:59 -0400 Subject: Fix segfault caused by freeing records for no reason: * split() returns the input string when no delimiters are found --- lib/resolve.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/resolve.c') 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 { -- cgit