[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] linux-user: Use *at functions instead of cac
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH v2] linux-user: Use *at functions instead of caching interp_prefix contents |
Date: |
Thu, 7 Dec 2017 11:31:28 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 |
On 12/07/2017 09:06 AM, Eric Blake wrote:
>> It's an IF with a /* fallthru */, so there are very few
>> less ugly ways to write it...
>
> Maybe:
>
> while (1) {
> if (interp_dirfd > 0 && filename[0] == '/') {
> fd = openat(interp_dirfd, filename + 1, O_RDONLY);
> if (fd >= 0 || errno != ENOENT) {
> break;
> }
> }
> fd = open(filename, O_RDONLY);
> break;
> }
Nice. I'd been pondering
if (interp_dirfd < 0
|| filename[0] != '/'
|| (fd = openat(interp_dirfd, filename + 1, O_RDONLY),
fd < 0 && errno == ENOENT)) {
fd = open(filename, O_RDONLY);
}
r~