summaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
authorMarc-André Lureau <marc-andre.lureau@nokia.com>2009-03-26 21:31:12 +0200
committerMarc-André Lureau <marc-andre.lureau@nokia.com>2009-03-27 22:59:53 +0200
commit9e8c2d393a6e2ef8ceda58ff3db6c3a7a7223d46 (patch)
treeef2224c45b4aaf9b3a21cc81549acb9a778df9ae /src/modules
parent61cd6d4c19f77e560cec4325061efe4723816481 (diff)
bluetooth: don't access outside array range
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/bluetooth/module-bluetooth-device.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c
index 4c1f1c3e..2c4f29c8 100644
--- a/src/modules/bluetooth/module-bluetooth-device.c
+++ b/src/modules/bluetooth/module-bluetooth-device.c
@@ -448,8 +448,8 @@ static int setup_a2dp(struct userdata *u) {
break;
}
- if ((unsigned) i >= PA_ELEMENTSOF(freq_table)) {
- for (; i >= 0; i--) {
+ if ((unsigned) i == PA_ELEMENTSOF(freq_table)) {
+ for (--i; i >= 0; i--) {
if (cap->frequency & freq_table[i].cap) {
u->sample_spec.rate = freq_table[i].rate;
cap->frequency = freq_table[i].cap;
@@ -463,6 +463,8 @@ static int setup_a2dp(struct userdata *u) {
}
}
+ pa_assert(i < PA_ELEMENTSOF(freq_table));
+
if (cap->capability.configured)
return 0;