diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-03-26 02:15:59 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-03-26 02:15:59 -0400 |
commit | 37ec63ece45c7f27f576e1fb5911b55630125d03 (patch) | |
tree | 843d82c165c784997bedf2ad36f078f932b1643d /lib/resolve.c | |
parent | d0925dcc2e34d6f9a8c554ca97c4d75784e6f69d (diff) | |
download | spmc-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.c | 3 |
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 { |