[Mesa-dev] [PATCH:mesa] util: Make xmlconfig.c build on Solaris without d_type in dirent
Alan Coopersmith
alan.coopersmith at oracle.com
Thu Oct 4 03:21:24 UTC 2018
On 10/ 3/18 03:15 PM, Roland Mainz wrote:
> On Wed, Oct 3, 2018 at 11:51 PM Alan Coopersmith
> <alan.coopersmith at oracle.com> wrote:
>>
>> Introduced-by: commit 04bdbbcab3c4862bf3f54ce60fcc1d2007776f80
>> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
>> ---
>> src/util/xmlconfig.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/src/util/xmlconfig.c b/src/util/xmlconfig.c
>> index 5264f2598b..608972f812 100644
>> --- a/src/util/xmlconfig.c
>> +++ b/src/util/xmlconfig.c
>> @@ -938,8 +938,16 @@ parseOneConfigFile(struct OptConfData *data, const char *filename)
>> static int
>> scandir_filter(const struct dirent *ent)
>> {
>> +#ifndef DT_REG /* systems without d_type in dirent results */
>> + struct stat st;
>> +
>> + lstat(ent->d_name, &st);
>> + if (!S_ISREG(st.st_mode) && !S_ISLNK(st.st_mode))
>> + return 0;
>> +#else
>
> What about testing for the return code of |lstat()|&&|errno| before
> looking at the value of |st| ?
Oh, I suppose there is a small window in which the file could disappear after
it's read from the directory entry, but before the lstat occurs.
Attached version checks for that.
--
-Alan Coopersmith- alan.coopersmith at oracle.com
Oracle Solaris Engineering - https://blogs.oracle.com/alanc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-util-Make-xmlconfig.c-build-on-Solaris-without-d_typ.patch
Type: text/x-patch
Size: 1147 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181003/2280f71a/attachment.bin>
More information about the mesa-dev
mailing list