Am Mi., 5. Feb. 2025 um 18:48 Uhr schrieb Sam James <[email protected]>:
> Michał Górny <[email protected]> reported that patch was running out of
> FDs and that the `deep-directories` test was failing. This turns out
> to be because `hash_insert` isn't called at all with `-DNDEBUG` because
> `insert_cached_dirfd` only calls it in one case inside of an `assert`.
>
> See https://github.com/conda-forge/patch-feedstock/issues/11.
>
> This regressed in 025a54b789bd88ed15430f8633514e296826983e.
>
> * src/safe.c (insert_cached_dirfd): Don't use 'assert' for 'hash_insert'
>   call with side-effects.
> ---
>  src/safe.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/safe.c b/src/safe.c
> index 1085042..5c32310 100644
> --- a/src/safe.c
> +++ b/src/safe.c
> @@ -183,7 +183,8 @@ static void insert_cached_dirfd (struct cached_dirfd 
> *entry, int keepfd)
>
>    /* Only insert if the parent still exists. */
>    if (! list_empty (&entry->children_link))
> -    assert (hash_insert (cached_dirfds, entry) == entry);
> +    if (hash_insert (cached_dirfds, entry) != entry)
> +      xalloc_die ();
>  }
>
>  static void invalidate_cached_dirfd (int dirfd, const char *name)
>
> base-commit: 1da6bf84db2ed0be88ccb47139256e48243a75f0
> --
> 2.48.1
>

Applied, thank you.

Andreas

Reply via email to