summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/kern/uipc_syscalls.c
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/sys/kern/uipc_syscalls.c')
-rw-r--r--freebsd/sys/kern/uipc_syscalls.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/freebsd/sys/kern/uipc_syscalls.c b/freebsd/sys/kern/uipc_syscalls.c
index 3c6d7efd..62101b5e 100644
--- a/freebsd/sys/kern/uipc_syscalls.c
+++ b/freebsd/sys/kern/uipc_syscalls.c
@@ -214,7 +214,9 @@ kern_socket(struct thread *td, int domain, int type, int protocol)
(void) fo_ioctl(fp, FIONBIO, &fflag, td->td_ucred, td);
td->td_retval[0] = fd;
}
+#ifndef __rtems__
fdrop(fp, td);
+#endif /* __rtems__ */
return (error);
}
#ifdef __rtems__
@@ -616,8 +618,10 @@ done:
} else
*fp = NULL;
}
+#ifndef __rtems__
if (nfp != NULL)
fdrop(nfp, td);
+#endif /* __rtems__ */
fdrop(headfp, td);
return (error);
}
@@ -840,15 +844,21 @@ kern_socketpair(struct thread *td, int domain, int type, int protocol,
(void) fo_ioctl(fp1, FIONBIO, &fflag, td->td_ucred, td);
(void) fo_ioctl(fp2, FIONBIO, &fflag, td->td_ucred, td);
}
+#ifndef __rtems__
fdrop(fp1, td);
fdrop(fp2, td);
+#endif /* __rtems__ */
return (0);
free4:
fdclose(td, fp2, rsv[1]);
+#ifndef __rtems__
fdrop(fp2, td);
+#endif /* __rtems__ */
free3:
fdclose(td, fp1, rsv[0]);
+#ifndef __rtems__
fdrop(fp1, td);
+#endif /* __rtems__ */
free2:
if (so2 != NULL)
(void)soclose(so2);