diff options
Diffstat (limited to 'net/bluetooth/l2cap.c')
| -rw-r--r-- | net/bluetooth/l2cap.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c index 162eab6a447..a5867879b61 100644 --- a/net/bluetooth/l2cap.c +++ b/net/bluetooth/l2cap.c @@ -2107,7 +2107,8 @@ static int l2cap_recv_acldata(struct hci_conn *hcon, struct sk_buff *skb, u16 fl  		if (!(conn->rx_skb = bt_skb_alloc(len, GFP_ATOMIC)))  			goto drop; -		memcpy(skb_put(conn->rx_skb, skb->len), skb->data, skb->len); +		skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, skb->len), +			      skb->len);  		conn->rx_len = len - skb->len;  	} else {  		BT_DBG("Cont: frag len %d (expecting %d)", skb->len, conn->rx_len); @@ -2128,7 +2129,8 @@ static int l2cap_recv_acldata(struct hci_conn *hcon, struct sk_buff *skb, u16 fl  			goto drop;  		} -		memcpy(skb_put(conn->rx_skb, skb->len), skb->data, skb->len); +		skb_copy_from_linear_data(skb, skb_put(conn->rx_skb, skb->len), +			      skb->len);  		conn->rx_len -= skb->len;  		if (!conn->rx_len) {  |