mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
virt-admin: Properly fix the default session daemon URI to admin server
Commit 30ce2f0e
tried to fix the issue with an incorrect session URI to admin
server but it messed up the checks:
if (geteuid == 0 && VIR_STRDUP(*uristr, "libvirtd:///system") < 0)
return -1;
else if (VIR_STRDUP(*uristr, "libvirtd:///session") < 0)
return -1;
So if a client executed with root privileges tries to connect, its euid is
checked (true) and the correct URI is successfully copied to @uristr (false),
therefore the 'else' branch is taken and @uristr is replaced by the session URI
which for root results in:
Failed to connect socket to '/root/.cache/libvirt/libvirt-admin-sock':
No such file or directory
Signed-off-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
parent
30ce2f0e2a
commit
9e5e7f3a5b
@ -179,11 +179,13 @@ virAdmGetDefaultURI(virConfPtr conf, char **uristr)
|
||||
* we set the default admin server URI to 'libvirtd:///system' or
|
||||
* 'libvirtd:///session' depending on the process's EUID.
|
||||
*/
|
||||
if (geteuid() == 0 &&
|
||||
VIR_STRDUP(*uristr, "libvirtd:///system") < 0)
|
||||
if (geteuid() == 0) {
|
||||
if (VIR_STRDUP(*uristr, "libvirtd:///system") < 0)
|
||||
return -1;
|
||||
else if (VIR_STRDUP(*uristr, "libvirtd:///session") < 0)
|
||||
} else {
|
||||
if (VIR_STRDUP(*uristr, "libvirtd:///session") < 0)
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user