diff options
author | Allan McRae <allan@archlinux.org> | 2019-11-21 13:38:59 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2019-11-21 13:42:23 +0100 |
commit | 8846574eda51cb48b3c3a462abb8bb9b61b7e10b (patch) | |
tree | 449076125ee7bb2ebcc83016fa54edfec6a0e4d9 /lib/libalpm | |
parent | eaa2770c80f8f3b168b99021e4258d696523d38a (diff) | |
download | pacman-8846574eda51cb48b3c3a462abb8bb9b61b7e10b.tar.gz pacman-8846574eda51cb48b3c3a462abb8bb9b61b7e10b.tar.xz |
Fix leak in _alpm_db_search on error condition
Diffstat (limited to 'lib/libalpm')
-rw-r--r-- | lib/libalpm/db.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c index cf4c865f..43ca1fc8 100644 --- a/lib/libalpm/db.c +++ b/lib/libalpm/db.c @@ -422,7 +422,10 @@ int _alpm_db_search(alpm_db_t *db, const alpm_list_t *needles, _alpm_log(db->handle, ALPM_LOG_DEBUG, "searching for target '%s'\n", targ); if(regcomp(®, targ, REG_EXTENDED | REG_NOSUB | REG_ICASE | REG_NEWLINE) != 0) { - RET_ERR(db->handle, ALPM_ERR_INVALID_REGEX, -1); + db->handle->pm_errno = ALPM_ERR_INVALID_REGEX; + alpm_list_free(list); + alpm_list_free(*ret); + return -1; } for(j = list; j; j = j->next) { |