* [PATCH] mac80211: don't allow registering the same rate control twice
@ 2007-10-28 13:49 Johannes Berg
0 siblings, 0 replies; only message in thread
From: Johannes Berg @ 2007-10-28 13:49 UTC (permalink / raw)
To: John W. Linville; +Cc: Michael Wu, linux-wireless
Previously, mac80211 would allow registering the same rate control
algorithm twice. This is a programming error in the registration
and should not happen; additionally the second version could never
be selected. Disallow this and warn about it.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---
There could be potential for data corruption here when one
algorithm is registered twice depending on how the algorithm
code is written (it might only expect to be registered once),
so I think this should be applied for 2.6.24.
net/mac80211/ieee80211_rate.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
--- linux-2.6.orig/net/mac80211/ieee80211_rate.c 2007-10-28 14:43:47.835043456 +0100
+++ linux-2.6/net/mac80211/ieee80211_rate.c 2007-10-28 14:46:20.907430120 +0100
@@ -28,13 +28,22 @@ int ieee80211_rate_control_register(stru
if (!ops->name)
return -EINVAL;
+ mutex_lock(&rate_ctrl_mutex);
+ list_for_each_entry(alg, &rate_ctrl_algs, list) {
+ if (!strcmp(alg->ops->name, ops->name)) {
+ /* don't register an algorithm twice */
+ WARN_ON(1);
+ return -EALREADY;
+ }
+ }
+
alg = kzalloc(sizeof(*alg), GFP_KERNEL);
if (alg == NULL) {
+ mutex_unlock(&rate_ctrl_mutex);
return -ENOMEM;
}
alg->ops = ops;
- mutex_lock(&rate_ctrl_mutex);
list_add_tail(&alg->list, &rate_ctrl_algs);
mutex_unlock(&rate_ctrl_mutex);
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-10-28 13:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-28 13:49 [PATCH] mac80211: don't allow registering the same rate control twice Johannes Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox