ANDROID: rust_binder: do not take refcount during GET_NODE_INFO_FOR_REF
The ioctl GET_NODE_INFO_FOR_REF will query the refcount of a remote node, which servicemanager uses to determine whether a lazy service should be shut down. To return the right counts, the ioctl itself should not take a refcount on the node. Bug: 427655909 Change-Id: I79a5e9f9506e6437900c8188de950ee449f8ec89 Signed-off-by: Alice Ryhl <aliceryhl@google.com>
This commit is contained in:
committed by
Matthew Maurer
parent
d47caa0b28
commit
cd7cc3a247
@@ -1141,11 +1141,10 @@ impl Process {
|
|||||||
return Err(EPERM);
|
return Err(EPERM);
|
||||||
}
|
}
|
||||||
|
|
||||||
let node_ref = self
|
|
||||||
.get_node_from_handle(out.handle, true)
|
|
||||||
.or(Err(EINVAL))?;
|
|
||||||
// Get the counts from the node.
|
|
||||||
{
|
{
|
||||||
|
let mut node_refs = self.node_refs.lock();
|
||||||
|
let node_info = node_refs.by_handle.get_mut(&out.handle).ok_or(ENOENT)?;
|
||||||
|
let node_ref = node_info.node_ref();
|
||||||
let owner_inner = node_ref.node.owner.inner.lock();
|
let owner_inner = node_ref.node.owner.inner.lock();
|
||||||
node_ref.node.populate_counts(&mut out, &owner_inner);
|
node_ref.node.populate_counts(&mut out, &owner_inner);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user