mesh: free local mbuf chains
Free locally declared mbufs before functions return.
diff --git a/nimble/host/mesh/src/adv.c b/nimble/host/mesh/src/adv.c
index 3143838..9f28614 100644
--- a/nimble/host/mesh/src/adv.c
+++ b/nimble/host/mesh/src/adv.c
@@ -233,6 +233,7 @@
ble_npl_event_set_arg(&adv->ev, buf);
return buf;
+ os_mbuf_free_chain(buf);
}
struct os_mbuf *bt_mesh_adv_create(enum bt_mesh_adv_type type, uint8_t xmit,
diff --git a/nimble/host/mesh/src/cfg_cli.c b/nimble/host/mesh/src/cfg_cli.c
index ad5419e..55e9b5a 100644
--- a/nimble/host/mesh/src/cfg_cli.c
+++ b/nimble/host/mesh/src/cfg_cli.c
@@ -1068,6 +1068,7 @@
return err;
}
+ os_mbuf_free_chain(msg);
return cli_wait();
}
@@ -1107,6 +1108,7 @@
return 0;
}
+ os_mbuf_free_chain(msg);
return cli_wait();
}
@@ -1188,6 +1190,7 @@
return err;
}
+ os_mbuf_free_chain(msg);
return cli_wait();
}
@@ -1228,6 +1231,7 @@
return 0;
}
+ os_mbuf_free_chain(msg);
return cli_wait();
}
@@ -1350,6 +1354,7 @@
return 0;
}
+ os_mbuf_free_chain(msg);
return cli_wait();
}
@@ -1420,6 +1425,7 @@
return err;
}
+ os_mbuf_free_chain(msg);
return cli_wait();
}
diff --git a/nimble/host/mesh/src/cfg_srv.c b/nimble/host/mesh/src/cfg_srv.c
index 3b52f86..f0042e6 100644
--- a/nimble/host/mesh/src/cfg_srv.c
+++ b/nimble/host/mesh/src/cfg_srv.c
@@ -336,6 +336,8 @@
if (bt_mesh_model_send(model, ctx, msg, NULL, NULL)) {
BT_ERR("Unable to send App Key Status response");
}
+
+ os_mbuf_free_chain(msg);
}
static void app_key_add(struct bt_mesh_model *model,
@@ -2120,6 +2122,8 @@
if (bt_mesh_model_send(model, ctx, msg, NULL, NULL)) {
BT_ERR("Unable to send Node Identity Status");
}
+
+ os_mbuf_free_chain(msg);
}
static void node_identity_get(struct bt_mesh_model *model,
diff --git a/nimble/host/mesh/src/transport.c b/nimble/host/mesh/src/transport.c
index b9f3276..14d7d24 100644
--- a/nimble/host/mesh/src/transport.c
+++ b/nimble/host/mesh/src/transport.c
@@ -551,6 +551,8 @@
*/
k_mem_slab_free(&segs, &buf);
tx->seg[seg_o] = NULL;
+
+ os_mbuf_free_chain(seg);
}
}
@@ -977,6 +979,7 @@
/* Adjust the length to not contain the MIC at the end */
buf->om_len -= APP_MIC_LEN(0);
+ os_mbuf_free_chain(buf);
return sdu_recv(rx, hdr, 0, buf, sdu, NULL);
}
@@ -1474,6 +1477,7 @@
seg_rx_reset(rx, false);
+ os_mbuf_free_chain(buf);
return err;
}