mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-20 11:48:28 -06:00
Fix initialization order bugs
virInitialize must be the first libvirt function called to ensure threads, error handling & random number generator are all setup. Move UNIX socket directory permissions change to place of use
This commit is contained in:
parent
0264e1678c
commit
5f67253813
@ -700,9 +700,15 @@ static int qemudInitPaths(struct qemud_server *server,
|
||||
int ret = -1;
|
||||
char *sock_dir_prefix = NULL;
|
||||
|
||||
if (unix_sock_dir)
|
||||
if (unix_sock_dir) {
|
||||
sock_dir = unix_sock_dir;
|
||||
else {
|
||||
/* Change the group ownership of /var/run/libvirt to unix_sock_gid */
|
||||
if (server->privileged) {
|
||||
if (chown(unix_sock_dir, -1, unix_sock_gid) < 0)
|
||||
VIR_ERROR(_("Failed to change group ownership of %s"),
|
||||
unix_sock_dir);
|
||||
}
|
||||
} else {
|
||||
sock_dir = sockname;
|
||||
if (server->privileged) {
|
||||
dir_prefix = strdup (LOCAL_STATE_DIR);
|
||||
@ -797,8 +803,6 @@ static struct qemud_server *qemudInitialize(int sigread) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
virInitialize();
|
||||
|
||||
/*
|
||||
* Note that the order is important: the first ones have a higher
|
||||
* priority when calling virStateInitialize. We must register
|
||||
@ -2847,6 +2851,8 @@ int main(int argc, char **argv) {
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
virInitialize();
|
||||
|
||||
while (1) {
|
||||
int optidx = 0;
|
||||
int c;
|
||||
@ -2989,13 +2995,6 @@ int main(int argc, char **argv) {
|
||||
if (remoteReadConfigFile (server, remote_config_file) < 0)
|
||||
goto error2;
|
||||
|
||||
/* Change the group ownership of /var/run/libvirt to unix_sock_gid */
|
||||
if (unix_sock_dir && server->privileged) {
|
||||
if (chown(unix_sock_dir, -1, unix_sock_gid) < 0)
|
||||
VIR_ERROR(_("Failed to change group ownership of %s"),
|
||||
unix_sock_dir);
|
||||
}
|
||||
|
||||
if (virEventAddHandleImpl(sigpipe[0],
|
||||
VIR_EVENT_HANDLE_READABLE,
|
||||
qemudDispatchSignalEvent,
|
||||
|
Loading…
Reference in New Issue
Block a user