mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 01:45:17 +00:00
libvirtd: do not ignore failure to set group ID in privileged mode
* daemon/libvirtd.c (qemudListenUnix): Diagnose and fail upon failure to set or restore group-ID.
This commit is contained in:
parent
1204e41f01
commit
7ca954cf26
@ -560,8 +560,10 @@ static int qemudListenUnix(struct qemud_server *server,
|
||||
|
||||
oldgrp = getgid();
|
||||
oldmask = umask(readonly ? ~unix_sock_ro_mask : ~unix_sock_rw_mask);
|
||||
if (server->privileged)
|
||||
setgid(unix_sock_gid);
|
||||
if (server->privileged && setgid(unix_sock_gid)) {
|
||||
VIR_ERROR(_("Failed to set group ID to %d"), unix_sock_gid);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (bind(sock->fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
|
||||
VIR_ERROR(_("Failed to bind socket to '%s': %s"),
|
||||
@ -569,8 +571,10 @@ static int qemudListenUnix(struct qemud_server *server,
|
||||
goto cleanup;
|
||||
}
|
||||
umask(oldmask);
|
||||
if (server->privileged)
|
||||
setgid(oldgrp);
|
||||
if (server->privileged && setgid(oldgrp)) {
|
||||
VIR_ERROR(_("Failed to restore group ID to %d"), oldgrp);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (listen(sock->fd, 30) < 0) {
|
||||
VIR_ERROR(_("Failed to listen for connections on '%s': %s"),
|
||||
|
Loading…
x
Reference in New Issue
Block a user