Bluetooth: Refuse ConfigRsp with different mode
If our mode is Basic Mode we have to refuse any ConfigRsp that proposes a different mode. Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
Родитель
625477523b
Коммит
6c2ea7a8f5
|
@ -2747,7 +2747,6 @@ static int l2cap_parse_conf_rsp(struct sock *sk, void *rsp, int len, void *data,
|
||||||
rfc.mode != pi->mode)
|
rfc.mode != pi->mode)
|
||||||
return -ECONNREFUSED;
|
return -ECONNREFUSED;
|
||||||
|
|
||||||
pi->mode = rfc.mode;
|
|
||||||
pi->fcs = 0;
|
pi->fcs = 0;
|
||||||
|
|
||||||
l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC,
|
l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC,
|
||||||
|
@ -2756,6 +2755,11 @@ static int l2cap_parse_conf_rsp(struct sock *sk, void *rsp, int len, void *data,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pi->mode == L2CAP_MODE_BASIC && pi->mode != rfc.mode)
|
||||||
|
return -ECONNREFUSED;
|
||||||
|
|
||||||
|
pi->mode = rfc.mode;
|
||||||
|
|
||||||
if (*result == L2CAP_CONF_SUCCESS) {
|
if (*result == L2CAP_CONF_SUCCESS) {
|
||||||
switch (rfc.mode) {
|
switch (rfc.mode) {
|
||||||
case L2CAP_MODE_ERTM:
|
case L2CAP_MODE_ERTM:
|
||||||
|
|
Загрузка…
Ссылка в новой задаче