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

cov 10384: better error handling from accept()

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2827 fd59a12c-fef9-0310-b244-a6a79926bd2f
Angus Salkeld 15 лет назад
Родитель
Сommit
cb536a12ce
1 измененных файлов с 5 добавлено и 3 удалено
  1. 5 3
      lcr/uis.c

+ 5 - 3
lcr/uis.c

@@ -174,12 +174,14 @@ static void *lcr_uis_server (void *data)
 			ufds[1].fd = accept (ufds[0].fd,
 				(struct sockaddr *)&un_addr, &addrlen);
 #ifdef COROSYNC_LINUX
-			setsockopt(ufds[1].fd, SOL_SOCKET, SO_PASSCRED,
-				&on, sizeof (on));
+			if (ufds[1].fd >= 0) {
+				setsockopt(ufds[1].fd, SOL_SOCKET, SO_PASSCRED,
+					&on, sizeof (on));
+			}
 #endif
 			nfds = 2;
 		}
-		if (ufds[0].revents & POLLIN) {
+		if (ufds[1].fd >= 0 && (ufds[0].revents & POLLIN)) {
 			lcr_uis_dispatch (ufds[1].fd);
 		}
 	}