aboutsummaryrefslogtreecommitdiff
path: root/lib/version_spec.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/version_spec.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/version_spec.c')
-rw-r--r--lib/version_spec.c5
1 files changed, 3 insertions, 2 deletions
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