OSDN Git Service

SMP: Reject pairing if public_key.x match am: 9fbf77d1a8
authorHansong Zhang <hsz@google.com>
Thu, 24 Jun 2021 23:39:06 +0000 (23:39 +0000)
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Thu, 24 Jun 2021 23:39:06 +0000 (23:39 +0000)
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/bt/+/15081352

Change-Id: I72ba8e45859116cfbcde52cce89bebd7aeaf6289

1  2 
stack/smp/smp_act.cc

@@@ -675,13 -661,11 +675,12 @@@ void smp_process_pairing_public_key(tSM
    memcpy(pt.x, p_cb->peer_publ_key.x, BT_OCTET32_LEN);
    memcpy(pt.y, p_cb->peer_publ_key.y, BT_OCTET32_LEN);
  
-   if (!memcmp(p_cb->peer_publ_key.x, p_cb->loc_publ_key.x, BT_OCTET32_LEN) &&
-       !memcmp(p_cb->peer_publ_key.y, p_cb->loc_publ_key.y, BT_OCTET32_LEN)) {
+   if (!memcmp(p_cb->peer_publ_key.x, p_cb->loc_publ_key.x, BT_OCTET32_LEN)) {
      android_errorWriteLog(0x534e4554, "174886838");
      SMP_TRACE_WARNING("Remote and local public keys can't match");
 -    reason = SMP_PAIR_AUTH_FAIL;
 -    smp_sm_event(p_cb, SMP_AUTH_CMPL_EVT, &reason);
 +    tSMP_INT_DATA smp;
 +    smp.status = SMP_PAIR_AUTH_FAIL;
 +    smp_sm_event(p_cb, SMP_AUTH_CMPL_EVT, &smp);
      return;
    }