فهرست منبع

ble_mesh: stack: Add proxy cfg pdu length check

lly 5 سال پیش
والد
کامیت
82d4bd280b
2فایلهای تغییر یافته به همراه10 افزوده شده و 0 حذف شده
  1. 5 0
      components/bt/esp_ble_mesh/mesh_core/proxy_client.c
  2. 5 0
      components/bt/esp_ble_mesh/mesh_core/proxy_server.c

+ 5 - 0
components/bt/esp_ble_mesh/mesh_core/proxy_client.c

@@ -154,6 +154,11 @@ static void proxy_cfg(struct bt_mesh_proxy_server *server)
     u8_t opcode = 0U;
     int err = 0;
 
+    if (server->buf.len > 29) {
+        BT_ERR("Too large proxy cfg pdu (len %d)", server->buf.len);
+        return;
+    }
+
     err = bt_mesh_net_decode(&server->buf, BLE_MESH_NET_IF_PROXY_CFG,
                              &rx, &buf);
     if (err) {

+ 5 - 0
components/bt/esp_ble_mesh/mesh_core/proxy_server.c

@@ -292,6 +292,11 @@ static void proxy_cfg(struct bt_mesh_proxy_client *client)
     u8_t opcode = 0U;
     int err = 0;
 
+    if (client->buf.len > 29) {
+        BT_ERR("Too large proxy cfg pdu (len %d)", client->buf.len);
+        return;
+    }
+
     err = bt_mesh_net_decode(&client->buf, BLE_MESH_NET_IF_PROXY_CFG,
                              &rx, &buf);
     if (err) {