]> granicus.if.org Git - esp-idf/commitdiff
ble_mesh: fix public key mismatch error handling
authorlly <lly@espressif.com>
Mon, 2 Sep 2019 06:34:58 +0000 (14:34 +0800)
committerlly <lly@espressif.com>
Mon, 9 Sep 2019 09:15:16 +0000 (17:15 +0800)
components/bt/esp_ble_mesh/mesh_core/prov.c

index 4a9572328afb1c6748c9784609aac00194a33826..c10aaba8ea8f71d99be76bdc235f1cdc5f64f3eb 100644 (file)
@@ -48,6 +48,9 @@
 #define INPUT_OOB_NUMBER       0x02
 #define INPUT_OOB_STRING       0x03
 
+#define PUB_KEY_NO_OOB         0x00
+#define PUB_KEY_OOB            0x01
+
 #define PROV_ERR_NONE          0x00
 #define PROV_ERR_NVAL_PDU      0x01
 #define PROV_ERR_NVAL_FMT      0x02
@@ -772,8 +775,8 @@ static void prov_start(const u8_t *data)
         return;
     }
 
-    if (data[1] > 0x01) {
-        BT_ERR("%s, Invalid public key value: 0x%02x", __func__, data[1]);
+    if (data[1] != prov->oob_pub_key) {
+        BT_ERR("%s, Invalid public key type: 0x%02x", __func__, data[1]);
         prov_send_fail_msg(PROV_ERR_NVAL_FMT);
         return;
     }