Commit 068648aa authored by Edward Adam Davis's avatar Edward Adam Davis Committed by David S. Miller
Browse files

nfc/nci: Add the inconsistency check between the input data length and count



write$nci(r0, &(0x7f0000000740)=ANY=[@ANYBLOB="610501"], 0xf)

Syzbot constructed a write() call with a data length of 3 bytes but a count value
of 15, which passed too little data to meet the basic requirements of the function
nci_rf_intf_activated_ntf_packet().

Therefore, increasing the comparison between data length and count value to avoid
problems caused by inconsistent data length and count.

Reported-and-tested-by: default avatar <syzbot+71bfed2b2bcea46c98f2@syzkaller.appspotmail.com>
Signed-off-by: default avatarEdward Adam Davis <eadavis@qq.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e9022b31
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -125,6 +125,10 @@ static ssize_t virtual_ncidev_write(struct file *file,
		kfree_skb(skb);
		return -EFAULT;
	}
	if (strnlen(skb->data, count) != count) {
		kfree_skb(skb);
		return -EINVAL;
	}

	nci_recv_frame(vdev->ndev, skb);
	return count;