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:04:33 +0100
commitaf60212c0b984939003b47356d71adcc1a6bcb00 (patch)
tree500c0223bea5ce381301f3a97b4c6e08dbba3372
parentSOCKETPAIR(2): Port to RTEMS (diff)
downloadrtems-libbsd-af60212c0b984939003b47356d71adcc1a6bcb00.tar.bz2
Fix heap corruption in UNIX domain socket connect
Close #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;