소스 검색

uml: fix recvmsg return value checking

Stupid bug - we need to compare the return value of recvmsg to the value of
iov_len, not its size.  This caused port_helper processes not to be killed on
shutdown on x86_64 because the pids weren't being passed out properly.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Jeff Dike 17 년 전
부모
커밋
d4d5d205b6
1개의 변경된 파일1개의 추가작업 그리고 2개의 파일을 삭제
  1. 1 2
      arch/um/os-Linux/file.c

+ 1 - 2
arch/um/os-Linux/file.c

@@ -496,8 +496,7 @@ int os_rcv_fd(int fd, int *helper_pid_out)
 	n = recvmsg(fd, &msg, 0);
 	n = recvmsg(fd, &msg, 0);
 	if(n < 0)
 	if(n < 0)
 		return -errno;
 		return -errno;
-
-	else if(n != sizeof(iov.iov_len))
+	else if(n != iov.iov_len)
 		*helper_pid_out = -1;
 		*helper_pid_out = -1;
 
 
 	cmsg = CMSG_FIRSTHDR(&msg);
 	cmsg = CMSG_FIRSTHDR(&msg);