mirror of
https://github.com/esphome/esphome.git
synced 2026-08-22 22:26:21 +00:00
[esp32_ble_server] Validate descriptor write length before copying (#17626)
This commit is contained in:
@@ -77,6 +77,10 @@ void BLEDescriptor::gatts_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_
|
|||||||
case ESP_GATTS_WRITE_EVT: {
|
case ESP_GATTS_WRITE_EVT: {
|
||||||
if (this->handle_ != param->write.handle)
|
if (this->handle_ != param->write.handle)
|
||||||
break;
|
break;
|
||||||
|
if (param->write.len > this->value_.attr_max_len) {
|
||||||
|
ESP_LOGE(TAG, "Size %d too large, must be no bigger than %d", param->write.len, this->value_.attr_max_len);
|
||||||
|
break;
|
||||||
|
}
|
||||||
this->value_.attr_len = param->write.len;
|
this->value_.attr_len = param->write.len;
|
||||||
memcpy(this->value_.attr_value, param->write.value, param->write.len);
|
memcpy(this->value_.attr_value, param->write.value, param->write.len);
|
||||||
if (this->on_write_callback_) {
|
if (this->on_write_callback_) {
|
||||||
|
|||||||
Reference in New Issue
Block a user