--- src/sys/dev/misc/streams/Attic/streams.c 2004/08/02 13:22:32 1.13 +++ src/sys/dev/misc/streams/Attic/streams.c 2004/11/12 00:09:07 1.14 @@ -242,8 +242,11 @@ streamsopen(dev_t dev, int oflags, int d return error; if ((error = socreate(family, &so, type, protocol, td)) != 0) { - p->p_fd->fd_ofiles[fd] = 0; - ffree(fp); + if (p->p_fd->fd_ofiles[fd] == fp) { + p->p_fd->fd_ofiles[fd] = NULL; + fdrop(fp, td); + } + fdrop(fp, td); return error; } @@ -251,8 +254,8 @@ streamsopen(dev_t dev, int oflags, int d fp->f_flag = FREAD|FWRITE; fp->f_ops = &svr4_netops; fp->f_type = DTYPE_SOCKET; - (void)svr4_stream_get(fp); + fdrop(fp, td); p->p_dupfd = fd; return ENXIO; }