This patch fixes a number of potential NULL pointer dereferencing
cases.
---
tools/mesh/cfgcli.c | 2 --
tools/mesh/mesh-db.c | 3 ++-
tools/mesh/remote.c | 6 ++++++
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/tools/mesh/cfgcli.c b/tools/mesh/cfgcli.c
index 2bf1a1503..f815c513c 100644
--- a/tools/mesh/cfgcli.c
+++ b/tools/mesh/cfgcli.c
@@ -668,8 +668,6 @@ static bool msg_recvd(uint16_t src, uint16_t idx, uint8_t *data,
break;
}
- bt_shell_printf("Period\t\t%d ms\n", pub.period);
-
pub.rtx_cnt = data[9] & 0x7;
pub.rtx_interval = ((data[9] >> 3) + 1) * 50;
bt_shell_printf("Rexmit count\t%d\n", pub.rtx_cnt);
diff --git a/tools/mesh/mesh-db.c b/tools/mesh/mesh-db.c
index 12055c1a9..1a1ba380b 100644
--- a/tools/mesh/mesh-db.c
+++ b/tools/mesh/mesh-db.c
@@ -2508,7 +2508,8 @@ void *mesh_db_prepare_export(void)
jarray = json_object_new_array();
json_object_object_add(export, "scenes", jarray);
- write_bool(export, "partial", false);
+ if (!write_bool(export, "partial", false))
+ l_warn("Failed to write\"partial\" property");
return export;
}
diff --git a/tools/mesh/remote.c b/tools/mesh/remote.c
index 054da5300..6ec220a6f 100644
--- a/tools/mesh/remote.c
+++ b/tools/mesh/remote.c
@@ -281,6 +281,9 @@ bool remote_update_net_key(uint16_t addr, uint16_t net_idx, bool update,
key = l_queue_find(rmt->net_keys, match_key,
L_UINT_TO_PTR(net_idx));
+ if (!key)
+ return false;
+
key->updated = update;
if (save)
@@ -343,6 +346,9 @@ bool remote_update_app_key(uint16_t addr, uint16_t app_idx, bool update,
key = l_queue_find(rmt->app_keys, match_key,
L_UINT_TO_PTR(app_idx));
+ if (!key)
+ return false;
+
key->updated = update;
if (save)
--
2.31.1