summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_usrreq.c
diff options
context:
space:
mode:
authormjg <mjg@FreeBSD.org>2013-07-02 07:36:04 +0000
committermjg <mjg@FreeBSD.org>2013-07-02 07:36:04 +0000
commit80f69955c8013874ae6bcd1d55dd183d69116299 (patch)
treec9daee134ed270d2a44a1674d5525ea18047ca76 /sys/kern/uipc_usrreq.c
parentad998c9e9f5e1e7c57d38533282576dea7ee9cfb (diff)
downloadFreeBSD-src-80f69955c8013874ae6bcd1d55dd183d69116299.zip
FreeBSD-src-80f69955c8013874ae6bcd1d55dd183d69116299.tar.gz
Fix receiving fd over unix socket broken in r247740.
If n fds were passed, it would receive the first one n times. Reported by: Shawn Webb <lattera@gmail.com>, koobs, gleb Tested by: koobs, gleb Reviewed by: pjd
Diffstat (limited to 'sys/kern/uipc_usrreq.c')
-rw-r--r--sys/kern/uipc_usrreq.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c
index 5d8e814..7a4db04 100644
--- a/sys/kern/uipc_usrreq.c
+++ b/sys/kern/uipc_usrreq.c
@@ -1764,8 +1764,8 @@ unp_externalize(struct mbuf *control, struct mbuf **controlp, int flags)
}
for (i = 0; i < newfds; i++, fdp++) {
fde = &fdesc->fd_ofiles[*fdp];
- fde->fde_file = fdep[0]->fde_file;
- filecaps_move(&fdep[0]->fde_caps,
+ fde->fde_file = fdep[i]->fde_file;
+ filecaps_move(&fdep[i]->fde_caps,
&fde->fde_caps);
if ((flags & MSG_CMSG_CLOEXEC) != 0)
fde->fde_flags |= UF_EXCLOSE;
OpenPOWER on IntegriCloud