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/version_spec.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/version_spec.c')
-rw-r--r-- | lib/version_spec.c | 5 |
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 |