[pacman-dev] [PATCH] trans_commit: restore pm_errno after updating log

Allan McRae allan at archlinux.org
Tue Jan 27 02:54:49 UTC 2015


On 27/01/15 04:19, Andrew Gregory wrote:
> If the call to alpm_logaction failed it would overwrite pm_errno,
> leading to error messages unrelated to the actual reason the transaction
> failed.
> 
> Signed-off-by: Andrew Gregory <andrew.gregory.8 at gmail.com>
> ---
> 
> Intended for maint.
> 

OK.

>  lib/libalpm/trans.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c
> index 7cdb096..e1caa5e 100644
> --- a/lib/libalpm/trans.c
> +++ b/lib/libalpm/trans.c
> @@ -192,13 +192,17 @@ int SYMEXPORT alpm_trans_commit(alpm_handle_t *handle, alpm_list_t **data)
>  	if(trans->add == NULL) {
>  		if(_alpm_remove_packages(handle, 1) == -1) {
>  			/* pm_errno is set by _alpm_remove_packages() */
> +			alpm_errno_t save = handle->pm_errno;
>  			alpm_logaction(handle, ALPM_CALLER_PREFIX, "transaction failed\n");
> +			handle->pm_errno = save;
>  			return -1;
>  		}
>  	} else {
>  		if(_alpm_sync_commit(handle, data) == -1) {
>  			/* pm_errno is set by _alpm_sync_commit() */
> +			alpm_errno_t save = handle->pm_errno;
>  			alpm_logaction(handle, ALPM_CALLER_PREFIX, "transaction failed\n");
> +			handle->pm_errno = save;
>  			return -1;
>  		}
>  	}
> 


More information about the pacman-dev mailing list