On 10/17/19 5:09 AM, Michał Górny wrote:
> Unlink for all distfile layouts rather than for all but primary.  This
> wrongly assumed that the primary layout will always be removed
> as a result of earlier code.  However, the rename() call correctly
> assumes that the primary layout may be an old symlink, and operates
> on realpath().  Therefore, the real file from a secondary layout may
> be renamed, leaving dangling symlink.
> 
> Bug: https://bugs.gentoo.org/697906
> Signed-off-by: Michał Górny <mgo...@gentoo.org>
> ---
>  lib/portage/_emirrordist/DeletionTask.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/portage/_emirrordist/DeletionTask.py 
> b/lib/portage/_emirrordist/DeletionTask.py
> index db5ac5ffb..a4bb29419 100644
> --- a/lib/portage/_emirrordist/DeletionTask.py
> +++ b/lib/portage/_emirrordist/DeletionTask.py
> @@ -102,7 +102,7 @@ class DeletionTask(CompositeTask):
>  
>       def _delete_links(self):
>               success = True
> -             for layout in self.config.layouts[1:]:
> +             for layout in self.config.layouts:
>                       distfile_path = os.path.join(
>                               self.config.options.distfiles,
>                               layout.get_path(self.distfile))
> 

Looks good. Please merge.
-- 
Thanks,
Zac

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to