Diff between f425d8156cc1a46c28ad9f89a17afaa853762c3f and 9ca7edc30c456260ce6ec91ff9d4f1c7c628eaf7

Changed Files

File Additions Deletions Status
src/adapter.c +9 -0 modified

Full Patch

diff --git a/src/adapter.c b/src/adapter.c
index 750d366..83ec0bc 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -205,6 +205,9 @@ static void class_of_dev_changed_callback(uint16_t index, uint16_t length,
 	struct btd_adapter *adapter = user_data;
 	const struct mgmt_cod *rp = param;
 
+	if (!adapter->initialized)
+		return;
+
 	if (length < sizeof(*rp)) {
 		error("Wrong size of class of device changed parameters");
 		return;
@@ -456,6 +459,9 @@ static void new_settings_callback(uint16_t index, uint16_t length,
 	struct btd_adapter *adapter = user_data;
 	uint32_t settings;
 
+	if (!adapter->initialized)
+		return;
+
 	if (length < sizeof(settings)) {
 		error("Wrong size of new settings parameters");
 		return;
@@ -689,6 +695,9 @@ static void local_name_changed_callback(uint16_t index, uint16_t length,
 	struct btd_adapter *adapter = user_data;
 	const struct mgmt_cp_set_local_name *rp = param;
 
+	if (!adapter->initialized)
+		return;
+
 	if (length < sizeof(*rp)) {
 		error("Wrong size of local name changed parameters");
 		return;