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/version_spec.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib/version_spec.c') diff --git a/lib/version_spec.c b/lib/version_spec.c index d7c8b2e..baf0f71 100644 --- a/lib/version_spec.c +++ b/lib/version_spec.c @@ -408,7 +408,6 @@ ManifestPackage *find_by_strspec(const Manifest *manifest, const char *_strspec) get_name(&name, strspec); pos = get_operators(&op, strspec); - ManifestPackage **m = NULL; // No operators found if (pos == NULL) { @@ -430,13 +429,15 @@ ManifestPackage *find_by_strspec(const Manifest *manifest, const char *_strspec) selected = m[i]; } + /* TODO: What on earth was I trying to do here? Why am I freeing the manifest (pointers) ManifestPackage *result = manifest_package_copy(selected); for (size_t i = 0; m[i] != NULL; i++) { manifest_package_free(m[i]); } free(m); + */ free(strspec); - return result; + return selected; } // Obviously it didn't work out -- cgit