diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-02-02 08:04:33 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-02-02 08:04:33 +0100 |
commit | af60212c0b984939003b47356d71adcc1a6bcb00 (patch) | |
tree | 500c0223bea5ce381301f3a97b4c6e08dbba3372 | |
parent | SOCKETPAIR(2): Port to RTEMS (diff) | |
download | rtems-libbsd-af60212c0b984939003b47356d71adcc1a6bcb00.tar.bz2 |
Fix heap corruption in UNIX domain socket connect
Close #2558.
-rw-r--r-- | freebsd/sys/kern/uipc_usrreq.c | 6 |
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; |