summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-02-02 08:04:33 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-02-02 08:06:44 +0100
commit96bf77b2f9e95367452ffa03355a18cf4318ed0f (patch)
treee764a2486d7f6153129f3492111ba77f282ca03e
parentUpdate due to chain API changes (diff)
downloadrtems-libbsd-96bf77b2f9e95367452ffa03355a18cf4318ed0f.tar.bz2
Fix heap corruption in UNIX domain socket connect
Update #2558.
-rw-r--r--freebsd/sys/kern/uipc_usrreq.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/freebsd/sys/kern/uipc_usrreq.c b/freebsd/sys/kern/uipc_usrreq.c
index d2ee61ce..da4b624a 100644
--- a/freebsd/sys/kern/uipc_usrreq.c
+++ b/freebsd/sys/kern/uipc_usrreq.c
@@ -1440,10 +1440,10 @@ unp_connect(struct socket *so, struct sockaddr *nam, struct thread *td)
goto bad;
VFS_UNLOCK_GIANT(vfslocked);
#else /* __rtems__ */
- soun->sun_path[len] = '\0';
eval_flags = RTEMS_FS_FOLLOW_LINK;
- currentloc = rtems_filesystem_eval_path_start(&ctx,
- &soun->sun_path[0], eval_flags);
+ currentloc = rtems_filesystem_eval_path_start_with_root_and_current(
+ &ctx, &soun->sun_path[0], (size_t)len, eval_flags,
+ &rtems_filesystem_root, &rtems_filesystem_current);
if (currentloc->handlers == &socketops) {
vp = currentloc->node_access;