Re: [PATCH 12/24] getgrent_r.3: Use sizeof() to get buffer size (instead of hardcoding macro name)

From: Alejandro Colomar
Date: Tue Sep 29 2020 - 09:57:27 EST




On 2020-09-29 15:38, Michael Kerrisk (man-pages) wrote:
2.- Use sizeof() everywhere, and the macro for the initializer.

pros:
- It is valid as long as the buffer is an array.
cons:
- If the code gets into a function, and the buffer is then a pointer,
it will definitively produce a silent bug.

Sigh! I just did exactly the last point in a test program I've been writing...

M



Hmmm, maybe you would like to comment on this LKML thread I started yesterday:

https://lore.kernel.org/lkml/71c25cb0-9fa2-4e97-c93c-44eadfd781fb@xxxxxxxxx

Concretely, point 4 is about this.

I'd push 'array_bytes()' to all "libc"s I can, so that it's then common enough to use it everywhere, even in the man.

I'd also recommend reading this StackOverflow answer I wrote last year:

https://stackoverflow.com/a/57537491/6872717


Cheers,

Alex