qemu-sockets: Report explicit error if unlink fails
commit0ef705a2653f09c15e44a644a98b6febc761431e
authorCole Robinson <crobinso@redhat.com>
Tue, 5 May 2015 15:07:19 +0000 (5 11:07 -0400)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 20 May 2015 08:23:08 +0000 (20 10:23 +0200)
treefcfe9ae99e07f523fb55e4c75a0b1794dcb666ff
parentbc119048d7377ec8335ecde5946df629a1b72b46
qemu-sockets: Report explicit error if unlink fails

Consider this case:

$ ls -ld ~/root-owned/
drwx--x--x. 2 root root 4096 Apr 29 12:55 /home/crobinso/root-owned/
$ ls -l ~/root-owned/foo.sock
-rwxrwxrwx. 1 crobinso crobinso 0 Apr 29 12:55 /home/crobinso/root-owned/foo.sock

$ qemu-system-x86_64 -vnc unix:~/root-owned/foo.sock
qemu-system-x86_64: -vnc unix:/home/crobinso/root-owned/foo.sock: Failed to start VNC server: Failed to bind socket to /home/crobinso/root-owned/foo.sock: Address already in use

...which is techinically true, but the real error is that we failed to
unlink. So report it.

This may seem pathological but it's a real possibility via libvirt.

Signed-off-by: Cole Robinson <crobinso@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
util/qemu-sockets.c