Explorar el Código

Bluetooth: Remove double free of SKB pointer in L2CAP

Trivial fix for double free of SKB pointer with kfree_skb to
make code simplier and cleaner. Remove unused variable err.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@nokia.com>
Acked-by: Gustavo F. Padovan <padovan@profusion.mobi>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Andrei Emeltchenko hace 15 años
padre
commit
fcafde2e6d
Se han modificado 1 ficheros con 4 adiciones y 7 borrados
  1. 4 7
      net/bluetooth/l2cap.c

+ 4 - 7
net/bluetooth/l2cap.c

@@ -3518,7 +3518,6 @@ static inline int l2cap_data_channel(struct l2cap_conn *conn, u16 cid, struct sk
 	struct l2cap_pinfo *pi;
 	struct l2cap_pinfo *pi;
 	u16 control, len;
 	u16 control, len;
 	u8 tx_seq;
 	u8 tx_seq;
-	int err;
 
 
 	sk = l2cap_get_chan_by_scid(&conn->chan_list, cid);
 	sk = l2cap_get_chan_by_scid(&conn->chan_list, cid);
 	if (!sk) {
 	if (!sk) {
@@ -3570,13 +3569,11 @@ static inline int l2cap_data_channel(struct l2cap_conn *conn, u16 cid, struct sk
 			goto drop;
 			goto drop;
 
 
 		if (__is_iframe(control))
 		if (__is_iframe(control))
-			err = l2cap_data_channel_iframe(sk, control, skb);
+			l2cap_data_channel_iframe(sk, control, skb);
 		else
 		else
-			err = l2cap_data_channel_sframe(sk, control, skb);
+			l2cap_data_channel_sframe(sk, control, skb);
 
 
-		if (!err)
-			goto done;
-		break;
+		goto done;
 
 
 	case L2CAP_MODE_STREAMING:
 	case L2CAP_MODE_STREAMING:
 		control = get_unaligned_le16(skb->data);
 		control = get_unaligned_le16(skb->data);
@@ -3602,7 +3599,7 @@ static inline int l2cap_data_channel(struct l2cap_conn *conn, u16 cid, struct sk
 		else
 		else
 			pi->expected_tx_seq = tx_seq + 1;
 			pi->expected_tx_seq = tx_seq + 1;
 
 
-		err = l2cap_sar_reassembly_sdu(sk, skb, control);
+		l2cap_sar_reassembly_sdu(sk, skb, control);
 
 
 		goto done;
 		goto done;