Merge branch 'backport/memory_leak_v1.2' into 'release/v1.2'

[v1.2] Backport: Fix memory leak in endpoint destroy

See merge request app-frameworks/esp-matter!1091
This commit is contained in:
Shu Chen
2025-04-10 12:51:04 +08:00
2 changed files with 21 additions and 3 deletions
@@ -1949,6 +1949,10 @@ esp_err_t destroy(node_t *node, endpoint_t *endpoint)
}
/* Free */
if (current_endpoint->identify != NULL) {
chip::Platform::Delete(current_endpoint->identify);
current_endpoint->identify = NULL;
}
esp_matter_mem_free(current_endpoint);
return ESP_OK;
}
+17 -3
View File
@@ -9,6 +9,9 @@ import subprocess
import netifaces
from typing import Tuple
from pytest_embedded import Dut
import os
import yaml
CURRENT_DIR_LIGHT = str(pathlib.Path(__file__).parent)+'/light'
CHIP_TOOL_EXE = str(pathlib.Path(__file__).parent)+ '/../connectedhomeip/connectedhomeip/out/host/chip-tool'
@@ -98,9 +101,20 @@ def test_matter_commissioning_c6(dut:Dut) -> None:
# get the host interface name
def get_host_interface_name() -> str:
interfaces = netifaces.interfaces()
interface_name = [s for s in interfaces if 'wl' in s][0]
return str(interface_name)
home_dir = os.path.expanduser("~")
config_path = os.path.join(home_dir, "config", "env_config.yml")
if os.path.exists(config_path):
with open(config_path, 'r') as file:
config = yaml.safe_load(file)
interface_name = config.get("interface_name")
if interface_name:
return str(interface_name)
else:
print("Warning: Configuration file found but 'interface_name' is not defined.")
if "eth1" in netifaces.interfaces():
return "eth1"
raise Exception("No valid network interface found. Please ensure 'eth1' exists or configure 'interface_name' in config/env_config file.")
# reset host interface