Skip to content

Commit 596b6f0

Browse files
iulia-tanasescuVudentz
authored andcommitted
Bluetooth: ISO: Check socket flag instead of hcon
This fixes the following Smatch static checker warning: net/bluetooth/iso.c:1364 iso_sock_recvmsg() error: we previously assumed 'pi->conn->hcon' could be null (line 1359) net/bluetooth/iso.c 1347 static int iso_sock_recvmsg(struct socket *sock, struct msghdr *msg, 1348 size_t len, int flags) 1349 { 1350 struct sock *sk = sock->sk; 1351 struct iso_pinfo *pi = iso_pi(sk); 1352 1353 BT_DBG("sk %p", sk); 1354 1355 if (test_and_clear_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags)) { 1356 lock_sock(sk); 1357 switch (sk->sk_state) { 1358 case BT_CONNECT2: 1359 if (pi->conn->hcon && ^^^^^^^^^^^^^^ If ->hcon is NULL 1360 test_bit(HCI_CONN_PA_SYNC, &pi->conn->hcon->flags)) { 1361 iso_conn_big_sync(sk); 1362 sk->sk_state = BT_LISTEN; 1363 } else { --> 1364 iso_conn_defer_accept(pi->conn->hcon); ^^^^^^^^^^^^^^ then we're toast 1365 sk->sk_state = BT_CONFIG; 1366 } 1367 release_sock(sk); 1368 return 0; 1369 case BT_CONNECTED: 1370 if (test_bit(BT_SK_PA_SYNC, Fixes: fbdc4bc ("Bluetooth: ISO: Use defer setup to separate PA sync and BIG sync") Signed-off-by: Iulia Tanasescu <[email protected]> Signed-off-by: Luiz Augusto von Dentz <[email protected]>
1 parent 89e856e commit 596b6f0

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

net/bluetooth/iso.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1356,8 +1356,7 @@ static int iso_sock_recvmsg(struct socket *sock, struct msghdr *msg,
13561356
lock_sock(sk);
13571357
switch (sk->sk_state) {
13581358
case BT_CONNECT2:
1359-
if (pi->conn->hcon &&
1360-
test_bit(HCI_CONN_PA_SYNC, &pi->conn->hcon->flags)) {
1359+
if (test_bit(BT_SK_PA_SYNC, &pi->flags)) {
13611360
iso_conn_big_sync(sk);
13621361
sk->sk_state = BT_LISTEN;
13631362
} else {

0 commit comments

Comments
 (0)