Re: [PATCH v2] tools/nolibc: Fix S_ISxxx macros

From: Willy Tarreau
Date: Sun Jan 08 2023 - 04:34:48 EST


Hello Warner,

On Fri, Jan 06, 2023 at 10:18:34AM -0700, Warner Losh wrote:
> The mode field has the type encoded as an value in a field, not as a bit
> mask. Mask the mode with S_IFMT instead of each type to test. Otherwise,
> false positives are possible: eg S_ISDIR will return true for block
> devices because S_IFDIR = 0040000 and S_IFBLK = 0060000 since mode is
> masked with S_IFDIR instead of S_IFMT. These macros now match the
> similar definitions in tools/include/uapi/linux/stat.h.

I'm impressed to see how I managed to make that gross a mistake!
Thanks for catching it and for the fix, its now queued.

Willy