Merge remote-tracking branch 'origin/pr/398'
* origin/pr/398: api: improve handling of removed VMs just before the call (try 2)
This commit is contained in:
commit
e258dd0864
@ -118,20 +118,21 @@ class AbstractQubesAPI:
|
|||||||
#: :py:class:`qubes.Qubes` object
|
#: :py:class:`qubes.Qubes` object
|
||||||
self.app = app
|
self.app = app
|
||||||
|
|
||||||
#: source qube
|
|
||||||
self.src = self.app.domains[src.decode('ascii')]
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
vm = src.decode('ascii')
|
||||||
|
#: source qube
|
||||||
|
self.src = self.app.domains[vm]
|
||||||
|
|
||||||
|
vm = dest.decode('ascii')
|
||||||
#: destination qube
|
#: destination qube
|
||||||
self.dest = self.app.domains[dest.decode('ascii')]
|
self.dest = self.app.domains[vm]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
# normally this should filtered out by qrexec policy, but there are
|
# normally this should filtered out by qrexec policy, but there are
|
||||||
# two cases it might not be:
|
# two cases it might not be:
|
||||||
# 1. The call comes from dom0, which bypasses qrexec policy
|
# 1. The call comes from dom0, which bypasses qrexec policy
|
||||||
# 2. Domain was removed between checking the policy and here
|
# 2. Domain was removed between checking the policy and here
|
||||||
# For uniform handling on the client side, treat this as permission
|
# we inform the client accordingly
|
||||||
# denied error too
|
raise qubes.exc.QubesVMNotFoundError(vm)
|
||||||
raise PermissionDenied
|
|
||||||
|
|
||||||
#: argument
|
#: argument
|
||||||
self.arg = arg.decode('ascii')
|
self.arg = arg.decode('ascii')
|
||||||
|
Loading…
Reference in New Issue
Block a user