Merge "adbd_auth: don't abort on unexpected response." into rvc-dev am: b78000ae52
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/11992395 Change-Id: I81f2d65420c94c1a8036ccd4f9b0089d21f9b39e
This commit is contained in:
commit
4b79a3fbb9
1 changed files with 11 additions and 5 deletions
|
@ -206,12 +206,18 @@ public:
|
|||
void AllowUsbDevice(std::string_view buf) EXCLUDES(mutex_) {
|
||||
std::lock_guard<std::mutex> lock(mutex_);
|
||||
CHECK(buf.empty());
|
||||
CHECK(dispatched_prompt_.has_value());
|
||||
auto& [id, key, arg] = *dispatched_prompt_;
|
||||
keys_.emplace(id, std::move(key));
|
||||
|
||||
callbacks_.key_authorized(arg, id);
|
||||
dispatched_prompt_ = std::nullopt;
|
||||
if (dispatched_prompt_.has_value()) {
|
||||
// It's possible for the framework to send us a response without our having sent a
|
||||
// request to it: e.g. if adbd restarts while we have a pending request.
|
||||
auto& [id, key, arg] = *dispatched_prompt_;
|
||||
keys_.emplace(id, std::move(key));
|
||||
|
||||
callbacks_.key_authorized(arg, id);
|
||||
dispatched_prompt_ = std::nullopt;
|
||||
} else {
|
||||
LOG(WARNING) << "adbd_auth: received authorization for unknown prompt, ignoring";
|
||||
}
|
||||
|
||||
// We need to dispatch pending prompts here upon success as well,
|
||||
// since we might have multiple queued prompts.
|
||||
|
|
Loading…
Reference in a new issue