Merge branch 'fix/i2c_master_asnyc_memory_leak' into 'master'

fix(i2c_master): Fix the memory leak in the async transaction

See merge request espressif/esp-idf!33847
This commit is contained in:
C.S.M 2024-09-27 16:17:11 +08:00
commit a63b8471eb

View File

@ -845,7 +845,7 @@ static esp_err_t s_i2c_asynchronous_transaction(i2c_master_dev_handle_t i2c_dev,
// Clear unused memory // Clear unused memory
uint8_t unused_dim = I2C_STATIC_OPERATION_ARRAY_MAX - ops_dim; uint8_t unused_dim = I2C_STATIC_OPERATION_ARRAY_MAX - ops_dim;
if (unused_dim != 0) { if (unused_dim != 0) {
memset(&i2c_master->i2c_async_ops[i2c_master->ops_prepare_idx] + sizeof(i2c_operation_t) * ops_dim, 0, sizeof(i2c_operation_t) * unused_dim); memset(&i2c_master->i2c_async_ops[i2c_master->ops_prepare_idx][ops_dim], 0, sizeof(i2c_operation_t) * unused_dim);
} }
// Record current operation and feed to transaction queue. // Record current operation and feed to transaction queue.
ops_current = &i2c_master->i2c_async_ops[i2c_master->ops_prepare_idx][0]; ops_current = &i2c_master->i2c_async_ops[i2c_master->ops_prepare_idx][0];