[pacman-dev] Fix leak in _alpm_db_search on error condition

Message ID 20191121124249.413174-1-allan@archlinux.org
State Accepted, archived
Headers show
Series [pacman-dev] Fix leak in _alpm_db_search on error condition | expand

Commit Message

Allan McRae Nov. 21, 2019, 12:42 p.m. UTC
---
 lib/libalpm/db.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Patch

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(&reg, 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) {