浏览代码

drivers/net/macvtap: fix error check

'len' is unsigned of type size_t and can't be negative.

Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Nicolas Kaiser 14 年之前
父节点
当前提交
ce3c869283
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      drivers/net/macvtap.c

+ 2 - 1
drivers/net/macvtap.c

@@ -528,8 +528,9 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q,
 		vnet_hdr_len = q->vnet_hdr_sz;
 		vnet_hdr_len = q->vnet_hdr_sz;
 
 
 		err = -EINVAL;
 		err = -EINVAL;
-		if ((len -= vnet_hdr_len) < 0)
+		if (len < vnet_hdr_len)
 			goto err;
 			goto err;
+		len -= vnet_hdr_len;
 
 
 		err = memcpy_fromiovecend((void *)&vnet_hdr, iv, 0,
 		err = memcpy_fromiovecend((void *)&vnet_hdr, iv, 0,
 					   sizeof(vnet_hdr));
 					   sizeof(vnet_hdr));