diff options
author | Steven Moreland <smoreland@google.com> | 2021-01-21 22:47:40 +0000 |
---|---|---|
committer | Steven Moreland <smoreland@google.com> | 2021-01-21 22:49:28 +0000 |
commit | 7d1b0739fb4988da360db5e29b3e343bab5703ae (patch) | |
tree | e97f21fc24c15f25de9df0fd005ac39e237879b0 /transport | |
parent | 57341bb19f7782cefb3f762bad6601fbd635df5e (diff) | |
download | libhidl-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.cpp | 8 |
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 |