chiark / gitweb /
@@ -1,8 +1,14 @@
[userv.git] / servexec.c
index 82b89e5470716f8e76438c46aff4fbcd4aa61b40..01353cdaab6c643b8fb09f93b1aa141793574b4e 100644 (file)
@@ -266,7 +266,8 @@ void execservice(const int synchsocket[], int clientfd) {
     fdarray[fd].holdfd= -1;
   }
   for (fd=0; fd<fdarrayused; fd++) {
-    if (fdarray[fd].realfd < fdarrayused) fdarray[fdarray[fd].realfd].holdfd= fd;
+    if (fdarray[fd].realfd < fdarrayused && fdarray[fd].realfd >= 0)
+      fdarray[fdarray[fd].realfd].holdfd= fd;
   }
   for (fd=0; fd<fdarrayused; fd++) {
     realfd= fdarray[fd].realfd;