--- IO-FDPass/FDPass.xs 2014/10/31 07:09:43 1.6 +++ IO-FDPass/FDPass.xs 2021/01/03 23:54:05 1.8 @@ -34,11 +34,11 @@ #include #ifndef CMSG_SPACE - # define CMSG_SPACE(len) (sizeof (cmsghdr) + len) + # define CMSG_SPACE(len) (sizeof (struct cmsghdr) + len) #endif #ifndef CMSG_LEN - # define CMSG_LEN(len) (sizeof (cmsghdr) + len) + # define CMSG_LEN(len) (sizeof (struct cmsghdr) + len) #endif #endif @@ -191,7 +191,10 @@ msg.msg_controllen = CMSG_SPACE (sizeof (int)); if (recvmsg (socket, &msg, 0) <= 0) - return -1; + { + free (buf); + return -1; + } int fd = -1; errno = EDOM;