From 681509fd445ed6012e6ecf89b49e9c00d83b70cd Mon Sep 17 00:00:00 2001 From: Tobias Stoeckmann Date: Mon, 6 Jun 2016 20:12:30 +0200 Subject: Release resources on error paths. Some resources (memory or file descriptors) are not released on all error paths. Signed-off-by: Tobias Stoeckmann Signed-off-by: Allan McRae --- lib/libalpm/add.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lib/libalpm/add.c') diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c index f5c9a957..d132e522 100644 --- a/lib/libalpm/add.c +++ b/lib/libalpm/add.c @@ -466,7 +466,7 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg, } } - /* prepare directory for database entries so permission are correct after + /* prepare directory for database entries so permissions are correct after changelog/install script installation */ if(_alpm_local_db_prepare(db, newpkg)) { alpm_logaction(handle, ALPM_CALLER_PREFIX, @@ -503,6 +503,9 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg, _alpm_log(handle, ALPM_LOG_ERROR, _("could not change directory to %s (%s)\n"), handle->root, strerror(errno)); _alpm_archive_read_free(archive); + if(cwdfd >= 0) { + close(cwdfd); + } close(fd); ret = -1; goto cleanup; -- cgit v1.2.3-24-g4f1b