summaryrefslogtreecommitdiff
path: root/transport
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2021-01-21 22:47:40 +0000
committerSteven Moreland <smoreland@google.com>2021-01-21 22:49:28 +0000
commit7d1b0739fb4988da360db5e29b3e343bab5703ae (patch)
treee97f21fc24c15f25de9df0fd005ac39e237879b0 /transport
parent57341bb19f7782cefb3f762bad6601fbd635df5e (diff)
downloadlibhidl-7d1b0739fb4988da360db5e29b3e343bab5703ae.tar.gz
onRegistrationImpl: handle getTransport error
Return an error instead of aborting outright, in case the calling code has any more error logging/info/etc... Bug: 175342959 Test: boot Change-Id: If6066a3dded8b916c2a1163f79e10ac527afe774
Diffstat (limited to 'transport')
-rw-r--r--transport/ServiceManagement.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/transport/ServiceManagement.cpp b/transport/ServiceManagement.cpp
index 8122324..08715cb 100644
--- a/transport/ServiceManagement.cpp
+++ b/transport/ServiceManagement.cpp
@@ -901,7 +901,13 @@ status_t registerAsServiceInternal(const sp<IBase>& service, const std::string&
if (kEnforceVintfManifest && !isTrebleTestingOverride()) {
using Transport = IServiceManager1_0::Transport;
- Transport transport = sm->getTransport(descriptor, name);
+ Return<Transport> transport = sm->getTransport(descriptor, name);
+
+ if (!transport.isOk()) {
+ LOG(ERROR) << "Could not get transport for " << descriptor << "/" << name << ": "
+ << transport.description();
+ return UNKNOWN_ERROR;
+ }
if (transport != Transport::HWBINDER) {
LOG(ERROR) << "Service " << descriptor << "/" << name