diff --git a/C/iopreds.c b/C/iopreds.c index 40bb68b17..3f4019112 100644 --- a/C/iopreds.c +++ b/C/iopreds.c @@ -1426,8 +1426,10 @@ InitSocketStream(int fd, socket_info flags, socket_domain domain) { for (sno = 0; sno < MaxStreams; ++sno) if (Stream[sno].status & Free_Stream_f) break; - if (sno == MaxStreams) - return (PlIOError (SYSTEM_ERROR,TermNil, "new stream not available for socket/4")); + if (sno == MaxStreams) { + PlIOError (SYSTEM_ERROR,TermNil, "new stream not available for socket/4"); + return(TermNil); + } st = &Stream[sno]; st->u.socket.domain = domain; st->u.socket.flags = flags; diff --git a/C/ypsocks.c b/C/ypsocks.c index 6211cc8ce..a534e61f8 100644 --- a/C/ypsocks.c +++ b/C/ypsocks.c @@ -454,6 +454,7 @@ p_socket(void) #endif return(FALSE); } + if (out == TermNil) return(FALSE); return(unify(out,ARG4)); } @@ -897,6 +898,7 @@ p_socket_accept(void) out = InitSocketStream(fd, server_session_socket, af_inet ); } else return(FALSE); + if (out == TermNil) return(FALSE); return(unify(out,ARG3)); }