File hyper-v.tools.hv.hv_kvp_daemon.c.patch of Package hyper-v

--- hv_kvp_daemon.c.orig	2012-05-16 20:11:10.000000000 +0200
+++ hv_kvp_daemon.c	2012-05-16 20:40:08.000000000 +0200
@@ -701,14 +701,16 @@ int main(void)
 	pfd.fd = fd;
 
 	while (1) {
+		struct sockaddr *addr_p = (struct sockaddr *) &addr;
+		socklen_t addr_l = sizeof(addr);
 		pfd.events = POLLIN;
 		pfd.revents = 0;
 		poll(&pfd, 1, -1);
 
-		len = recv(fd, kvp_recv_buffer, sizeof(kvp_recv_buffer), 0);
+		len = recvfrom(fd, kvp_recv_buffer, sizeof(kvp_recv_buffer), 0, addr_p, &addr_l);
 
-		if (len < 0) {
-			syslog(LOG_ERR, "recv failed; error:%d", len);
+		if (len < 0 || addr.nl_pid) {
+			syslog(LOG_ERR, "recvfrom failed; pid:%u error:%d %s", addr.nl_pid, errno, strerror(errno));
 			close(fd);
 			return -1;
 		}
openSUSE Build Service is sponsored by