From: Yun-Hao Chung <howardchung@xxxxxxxxxxxx> This patch fixes a bug when setting empty service allowlist, the allowlist sets successfully but it fails to be stored in the file. Reviewed-by: Miao-chen Chou <mcchou@xxxxxxxxxxxx> --- Test procedure: 1. set empty service allowlist via bluetoothctl 2. cat /var/lib/bluetooth/admin_policy_settings 3. restart bluetoothd 4. get service allowlist via bluetoothctl plugins/admin.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/admin.c b/plugins/admin.c index aea33cb71ac2..02fec04568ba 100644 --- a/plugins/admin.c +++ b/plugins/admin.c @@ -196,12 +196,17 @@ static char **new_uuid_strings(struct queue *allowlist, gsize *num) char **uuid_strs = NULL; gsize i = 0, allowlist_num; + allowlist_num = queue_length(allowlist); + if (!allowlist_num) { + *num = 0; + return NULL; + } + /* Set num to a non-zero number so that whoever call this could know if * this function success or not */ *num = 1; - allowlist_num = queue_length(allowlist); uuid_strs = g_try_malloc_n(allowlist_num, sizeof(char *)); if (!uuid_strs) return NULL; -- 2.33.0.259.gc128427fd7-goog