core: prevent invalid socket symlink target dereference (#4895)
authorStefan Hajnoczi <stefanha@gmail.com>
Fri, 16 Dec 2016 10:20:27 +0000 (10:20 +0000)
committerLennart Poettering <lennart@poettering.net>
Fri, 16 Dec 2016 10:20:27 +0000 (11:20 +0100)
commitb9495e8d58a87fc003cb55786b2cf9b2b9c7a65e
tree998a1797f116cd536cfbeea7b54c05e36090c921
parentd84071d569700547f6283061d5f66b585ec952b3
core: prevent invalid socket symlink target dereference (#4895)

socket_find_symlink_target() returns a pointer to
p->address.sockaddr.un.sun_path when the first byte is non-zero without
checking that this is AF_UNIX socket.  Since sockaddr is a union this
byte could be non-zero for AF_INET sockets.

Existing callers happen to be safe but is an accident waiting to happen.
Use socket_address_get_path() since it checks for AF_UNIX.
src/core/socket.c