[alsa-devel] ALSA core info race condition
b_lkasam at codeaurora.org
b_lkasam at codeaurora.org
Tue Jun 27 21:12:18 CEST 2017
hi ALSA team,
there is a race condition in below API when accessing list API.
In file sound/core/info.c:
Added below patch to avoid list access of same parent node
by two threads at same time causing list_debug crash.
diff --git a/sound/core/info.c b/sound/core/info.c
index b5158b5..c1fd671 100644
--- a/sound/core/info.c
+++ b/sound/core/info.c
@@ -747,8 +747,11 @@ snd_info_create_entry(const char *name, struct
snd_info_entry *parent)
INIT_LIST_HEAD(&entry->children);
INIT_LIST_HEAD(&entry->list);
entry->parent = parent;
- if (parent)
+ if (parent) {
+ mutex_lock(&parent->access);
list_add_tail(&entry->list, &parent->children);
+ mutex_unlock(&parent->access);
+ }
return entry;
}
Please check above logic looks fine, and help comment accordingly.
Thanks
Kasam
More information about the Alsa-devel
mailing list