changeset 915:f33a139029db HEAD

Still some fixes, I broke Solaris 8.
author Timo Sirainen <tss@iki.fi>
date Mon, 06 Jan 2003 22:13:58 +0200
parents fe0ba77d5506
children 5580b1a00e18
files src/lib/fdpass.c
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/fdpass.c	Mon Jan 06 20:54:36 2003 +0200
+++ b/src/lib/fdpass.c	Mon Jan 06 22:13:58 2003 +0200
@@ -100,12 +100,14 @@
 	msg.msg_controllen = sizeof(buf);
 
 	ret = recvmsg(handle, &msg, 0);
-	if (ret <= 0)
+	if (ret <= 0) {
+		*fd = -1;
 		return ret;
+	}
 
 	/* at least one byte transferred - we should have the fd now */
 	cmsg = CMSG_FIRSTHDR(&msg);
-	if (cmsg == NULL)
+	if (cmsg == NULL || cmsg->cmsg_len < CMSG_LEN(sizeof(int)))
 		*fd = -1;
 	else
 		*fd = *((int *) CMSG_DATA(cmsg));