[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