Просмотр исходного кода

Check socket_recv error code in ipc_dispatch_get

Also do not assert on error.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
Jan Friesse 13 лет назад
Родитель
Сommit
694a9c2cf0
1 измененных файлов с 2 добавлено и 7 удалено
  1. 2 7
      lib/coroipcc.c

+ 2 - 7
lib/coroipcc.c

@@ -908,14 +908,9 @@ coroipcc_dispatch_get (
 	}
 	}
 
 
 	error = socket_recv (ipc_instance->fd, &buf, 1);
 	error = socket_recv (ipc_instance->fd, &buf, 1);
-#if defined(COROSYNC_SOLARIS) || defined(COROSYNC_BSD) || defined(COROSYNC_DARWIN)
-	/* On many OS poll() never returns POLLHUP or POLLERR.
-	 * EOF is detected when recvmsg() return 0.
-	 */
-	if ( error == CS_ERR_LIBRARY )
+	if (error != CS_OK) {
 		goto error_put;
 		goto error_put;
-#endif
-	assert (error == CS_OK);
+	}
 
 
 	if (shared_mem_dispatch_bytes_left (ipc_instance) > (ipc_instance->dispatch_size/2)) {
 	if (shared_mem_dispatch_bytes_left (ipc_instance) > (ipc_instance->dispatch_size/2)) {
 		/*
 		/*