Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9cce3374 authored by Myles Watson's avatar Myles Watson Committed by Automerger Merge Worker
Browse files

Merge "Add waiting_for_complete_ to HCI fuzzer" into main am: e9840099 am: f70f0030

parents bfb87aa2 f70f0030
Loading
Loading
Loading
Loading
+4 −5
Original line number Original line Diff line number Diff line
@@ -58,6 +58,7 @@ void FuzzHciHal::sendHciCommand(HciPacket packet) {


  waiting_opcode_ = command.GetOpCode();
  waiting_opcode_ = command.GetOpCode();
  waiting_for_status_ = hci::fuzz::uses_command_status(waiting_opcode_);
  waiting_for_status_ = hci::fuzz::uses_command_status(waiting_opcode_);
  waiting_for_complete_ = !waiting_for_status_;
}
}


void FuzzHciHal::injectHciEvent(std::vector<uint8_t> data) {
void FuzzHciHal::injectHciEvent(std::vector<uint8_t> data) {
@@ -68,11 +69,10 @@ void FuzzHciHal::injectHciEvent(std::vector<uint8_t> data) {


  hci::CommandCompleteView complete = hci::CommandCompleteView::Create(event);
  hci::CommandCompleteView complete = hci::CommandCompleteView::Create(event);
  if (complete.IsValid()) {
  if (complete.IsValid()) {
    if (waiting_for_status_ || complete.GetCommandOpCode() != waiting_opcode_) {
    if (!waiting_for_complete_ || complete.GetCommandOpCode() != waiting_opcode_) {
      return;
      return;
    }
    }
  } else if (!waiting_for_status_) {
    waiting_for_complete_ = false;
    return;
  }
  }


  hci::CommandStatusView status = hci::CommandStatusView::Create(event);
  hci::CommandStatusView status = hci::CommandStatusView::Create(event);
@@ -80,8 +80,7 @@ void FuzzHciHal::injectHciEvent(std::vector<uint8_t> data) {
    if (!waiting_for_status_ || status.GetCommandOpCode() != waiting_opcode_) {
    if (!waiting_for_status_ || status.GetCommandOpCode() != waiting_opcode_) {
      return;
      return;
    }
    }
  } else if (waiting_for_status_) {
    waiting_for_status_ = false;
    return;
  }
  }


  callbacks_->hciEventReceived(data);
  callbacks_->hciEventReceived(data);
+3 −2
Original line number Original line Diff line number Diff line
@@ -54,8 +54,9 @@ class FuzzHciHal : public HciHal {
  void injectIsoData(std::vector<uint8_t> data);
  void injectIsoData(std::vector<uint8_t> data);


  HciHalCallbacks* callbacks_;
  HciHalCallbacks* callbacks_;
  hci::OpCode waiting_opcode_;
  hci::OpCode waiting_opcode_{};
  bool waiting_for_status_;
  bool waiting_for_complete_{};
  bool waiting_for_status_{};
};
};


}  // namespace fuzz
}  // namespace fuzz