Re: [PATCH v1 2/2] read-cache: make sure file handles are not inherited by child processes
- From
Lars Schneider <larsxschneider@gmail.com>
- Date
- Sep 7, 2016, 13:39 UTC
- Message-ID
- <7B903664-0324-4375-A81C-1317020CBE9B@gmail.com>
- In-Reply-To
- <20160906210632.GA28263@starla>
Show 20 quoted lines
> On 06 Sep 2016, at 23:06, Eric Wong <e@80x24.org> wrote:
>
> larsxschneider@gmail.com wrote:
>> static int ce_compare_data(const struct cache_entry *ce, struct stat *st)
>> {
>> int match = -1;
>> - int fd = open(ce->name, O_RDONLY);
>> + int fd = open(ce->name, O_RDONLY | O_CLOEXEC);
>>
>> if (fd >= 0) {
>> unsigned char sha1[20];
>
> Also, this needs to check EINVAL when O_CLOEXEC != 0 the same
> way create_tempfile currently does. Somebody could be building
> with modern headers but running an old kernel that doesn't
> understand O_CLOEXEC.
>
> There should probably be a open() wrapper for handling this case
> since we're now up to 3 places where open(... O_CLOEXEC) is
> used.Right! Actually "sha1_file.c:git_open_noatime()" is already a wrapper, no? Can't we use this here? The O_NOATIME flag shouldn't hurt, right?
Thanks, Lars