mirror of https://gitee.com/openkylin/libvirt.git
virsh: don't override connection URI from argv
Currently, if a connection URI was specified on the command line by the '-c' switch, virsh connects to it, but after connecting overrides its value with the one it tries to obtain from the VIRSH_DEFAULT_CONNECT_URI environment variable. This makes virsh connecting to the wrong URI if it disconnects from the hypervisor and then tries to reconnect, and also leaks the original connname. Fix by calling virGetEnvBlockSUID() before virshParseArgv().
This commit is contained in:
parent
003fa6d676
commit
0217089b89
|
@ -962,14 +962,14 @@ main(int argc, char **argv)
|
|||
if (!vshInit(ctl, cmdGroups, NULL))
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
ctl->connname = vshStrdup(ctl, virGetEnvBlockSUID("VIRSH_DEFAULT_CONNECT_URI"));
|
||||
|
||||
if (!virshParseArgv(ctl, argc, argv) ||
|
||||
!virshInit(ctl)) {
|
||||
virshDeinit(ctl);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
ctl->connname = vshStrdup(ctl, virGetEnvBlockSUID("VIRSH_DEFAULT_CONNECT_URI"));
|
||||
|
||||
if (!ctl->imode) {
|
||||
ret = vshCommandRun(ctl, ctl->cmd);
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue