• Paolo Bonzini's avatar
    qemu-ga: obey LISTEN_PID when using systemd socket activation · 53fabd4b
    Paolo Bonzini authored
    qemu-ga's socket activation support was not obeying the LISTEN_PID
    environment variable, which avoids that a process uses a socket-activation
    file descriptor meant for its parent.
    
    Mess can for example ensue if a process forks a children before consuming
    the socket-activation file descriptor and therefore setting O_CLOEXEC
    on it.
    
    Luckily, qemu-nbd also got socket activation code, and its copy does
    support LISTEN_PID.  Some extra fixups are needed to ensure that the
    code can be used for both, but that's what this patch does.  The
    main change is to replace get_listen_fds's "consume" argument with
    the FIRST_SOCKET_ACTIVATION_FD macro from the qemu-nbd code.
    
    Cc: "Richard W.M. Jones" <rjones@redhat.com>
    Cc: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: 's avatarDaniel P. Berrange <berrange@redhat.com>
    Signed-off-by: 's avatarPaolo Bonzini <pbonzini@redhat.com>
    53fabd4b
main.c 41.5 KB