diff --git a/services/config/src/device_impl.cpp b/services/config/src/device_impl.cpp index 74801947..b88e1c5e 100644 --- a/services/config/src/device_impl.cpp +++ b/services/config/src/device_impl.cpp @@ -75,7 +75,13 @@ Return DeviceImpl::registerClient(const hidl_string &client_name, callback->linkToDeath(this, client_handle); } ConfigInterface *intf = nullptr; - intf_->RegisterClientContext(device_client, &intf); + error = intf_->RegisterClientContext(device_client, &intf); + + if (error) { + callback->unlinkToDeath(this); + return Void(); + } + device_client->SetDeviceConfigIntf(intf); display_config_map_.emplace(std::make_pair(client_handle, device_client));