diff options
| -rw-r--r-- | lib/libalpm/sync.c | 22 | 
1 files changed, 6 insertions, 16 deletions
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 3e99795f..27b5454f 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -78,20 +78,6 @@ void _alpm_sync_free(pmsyncpkg_t *sync)  	FREE(sync);  } -static void synclist_free(alpm_list_t *syncpkgs) -{ -	if(syncpkgs) { -		alpm_list_t *tmp; -		for(tmp = syncpkgs; tmp; tmp = alpm_list_next(tmp)) { -			if(tmp->data) { -				_alpm_sync_free(tmp->data); -			} -		} -		alpm_list_free(syncpkgs); -	} - -} -  /* Find recommended replacements for packages during a sync.   */  static int find_replacements(pmtrans_t *trans, pmdb_t *db_local, @@ -154,7 +140,9 @@ static int find_replacements(pmtrans_t *trans, pmdb_t *db_local,  						sync = _alpm_sync_new(PM_SYNC_TYPE_REPLACE, spkg, NULL);  						if(sync == NULL) {  							pm_errno = PM_ERR_MEMORY; -							synclist_free(*syncpkgs); +							alpm_list_free_inner(*syncpkgs, (alpm_list_fn_free)_alpm_sync_free); +							alpm_list_free(*syncpkgs); +							*syncpkgs = NULL;  							return(-1);  						}  						sync->data = alpm_list_add(NULL, lpkg); @@ -244,7 +232,9 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans,  				sync = _alpm_sync_new(PM_SYNC_TYPE_UPGRADE, spkg, local);  				if(sync == NULL) {  					pm_errno = PM_ERR_MEMORY; -					synclist_free(*syncpkgs); +					alpm_list_free_inner(*syncpkgs, (alpm_list_fn_free)_alpm_sync_free); +					alpm_list_free(*syncpkgs); +					*syncpkgs = NULL;  					return(-1);  				}  				*syncpkgs = alpm_list_add(*syncpkgs, sync);  | 
