qemu-cr16/util
Daniel P. Berrange ad9579aaa1 sockets: improve error reporting if UNIX socket path is too long
The 'struct sockaddr_un' only allows 108 bytes for the socket
path.

If the user supplies a path, QEMU uses snprintf() to silently
truncate it when too long. This is undesirable because the user
will then be unable to connect to the path they asked for.

If the user doesn't supply a path, QEMU builds one based on
TMPDIR, but if that leads to an overlong path, it mistakenly
uses error_setg_errno() with a stale errno value, because
snprintf() does not set errno on truncation.

In solving this the code needed some refactoring to ensure we
don't pass 'un.sun_path' directly to any APIs which expect
NUL-terminated strings, because the path is not required to
be terminated.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-Id: <20170525155300.22743-1-berrange@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2017-06-07 18:22:02 +02:00
..
acl.c
aio-posix.c
aio-win32.c
aiocb.c
async.c
base64.c
bitmap.c
bitops.c
buffer.c
bufferiszero.c
compatfd.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
crc32c.c
cutils.c utils: provide size_to_str() 2017-05-17 17:30:45 +01:00
envlist.c util: Use g_malloc/g_free in envlist.c 2017-05-07 09:57:51 +03:00
error.c
event_notifier-posix.c Remove/replace sysemu/char.h inclusion 2017-06-02 11:33:52 +04:00
event_notifier-win32.c
fifo8.c
getauxval.c
hbitmap.c
hexdump.c
host-utils.c
id.c
iohandler.c
iov.c
keyval.c qapi: Reject alternates that can't work with keyval_parse() 2017-05-31 16:04:09 +02:00
lockcnt.c
log.c
main-loop.c
Makefile.objs
memfd.c
mmap-alloc.c
module.c
notify.c
osdep.c osdep: Fall back to posix lock when OFD lock is unavailable 2017-05-11 11:15:32 +02:00
oslib-posix.c Check the return value of fcntl in qemu_set_cloexec 2017-06-06 20:18:35 +02:00
oslib-win32.c
path.c
qdist.c
qemu-config.c util/qemu-config: Add loadparm to qemu machine_opts 2017-05-02 15:08:54 +02:00
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c
qemu-error.c
qemu-openpty.c
qemu-option.c QemuOpts: Simplify qemu_opts_to_qdict() 2017-05-09 09:14:39 +02:00
qemu-progress.c
qemu-sockets.c sockets: improve error reporting if UNIX socket path is too long 2017-06-07 18:22:02 +02:00
qemu-thread-posix.c trace: add qemu mutex lock and unlock trace events 2017-05-05 12:09:59 +02:00
qemu-thread-win32.c trace: add qemu mutex lock and unlock trace events 2017-05-05 12:09:59 +02:00
qemu-timer-common.c
qemu-timer.c
qht.c
range.c
rcu.c
readline.c
systemd.c
thread-pool.c
throttle.c
timed-average.c
trace-events trace: add qemu mutex lock and unlock trace events 2017-05-05 12:09:59 +02:00
unicode.c
uri.c
uuid.c