From 45002d2f90425cfa0ec373ee37c4cf26f380ac0f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 14 Feb 2003 12:51:53 +0200 Subject: [PATCH] fd_read(): make sure it's SCM_RIGHTS that was transferred so that login process couldn't fool us to use some of our existing fds. --HG-- branch : HEAD --- src/lib/fdpass.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/fdpass.c b/src/lib/fdpass.c index a6b0f9f73d..4cafbe3163 100644 --- a/src/lib/fdpass.c +++ b/src/lib/fdpass.c @@ -109,7 +109,8 @@ ssize_t fd_read(int handle, void *data, size_t size, int *fd) /* at least one byte transferred - we should have the fd now */ cmsg = CMSG_FIRSTHDR(&msg); if (msg.msg_controllen < CMSG_SPACE(sizeof(int)) || - cmsg == NULL || cmsg->cmsg_len < CMSG_LEN(sizeof(int))) + cmsg == NULL || cmsg->cmsg_len < CMSG_LEN(sizeof(int)) || + cmsg->cmsg_type != SCM_RIGHTS) *fd = -1; else *fd = *((int *) CMSG_DATA(cmsg)); -- 2.47.3