In article <[email protected]>,
Joerg Sonnenberger <[email protected]> wrote:
>-=-=-=-=-=-
>
>+#ifdef __clang__
>+ char buf[128];
>+#else
> char buf[CMSG_SPACE(sizeof(int))];
>+#endif
> } cmsgbuf;
Wouldn't it be better insted to re-define CMSG_SPACE for clang like:
#ifdef __clang__
#define CMSG_SPACE(x) ((x) + 128)
#else
...
#endif
This is bad too, what if sizeof(buf) < CMSG_SPACE(sizeof(int)):
> if (buf != NULL && buf->fd != -1) {
> msg.msg_control = (caddr_t)&cmsgbuf.buf;
>- msg.msg_controllen = sizeof(cmsgbuf.buf);
>+ msg.msg_controllen = CMSG_SPACE(sizeof(int));
> cmsg = CMSG_FIRSTHDR(&msg);
> cmsg->cmsg_len = CMSG_LEN(sizeof(int));
> cmsg->cmsg_level = SOL_SOCKET;