This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Avoid concurrency problem in ldconfig (bug 23973)
On Apr 18 2019, Florian Weimer <fweimer@redhat.com> wrote:
> * Andreas Schwab:
>
>> On Apr 18 2019, Florian Weimer <fweimer@redhat.com> wrote:
>>
>>> * Andreas Schwab:
>>>
>>>> Use a unique name for the temporary file when updating the ld.so cache, so
>>>> that two concurrent runs of ldconfig don't write to the same file.
>>>>
>>>> * elf/cache.c (save_cache): Use unique temporary name.
>>>> (save_aux_cache): Likewise.
>>>
>>> The downside of this change is that if ldconfig is interrupted, the
>>> temporary file never goes away.
>>>
>>> Ideally, we would use O_TMPFILE if supported by the (file) system, but
>>> that can get quite involved.
>>
>> That shortens the window, but won't close it, since we need a name to
>> pass to rename in any case.
>
> The difference is that with a fixed name, the next ldconfig run will use
> the same name and rename, cleaning up. With a random, unique name, that
> automatic cleanup is gone.
O_TMPFILE won't change that.
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."