lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 25 Dec 2020 10:52:16 +0800 From: wangyunjian <wangyunjian@...wei.com> To: <netdev@...r.kernel.org>, <mst@...hat.com>, <jasowang@...hat.com>, <willemdebruijn.kernel@...il.com> CC: <virtualization@...ts.linux-foundation.org>, <jerry.lilijun@...wei.com>, <chenchanghu@...wei.com>, <xudingke@...wei.com>, <brian.huangbin@...wei.com>, Yunjian Wang <wangyunjian@...wei.com> Subject: [PATCH net v2] tun: fix return value when the number of iovs exceeds MAX_SKB_FRAGS From: Yunjian Wang <wangyunjian@...wei.com> Currently the tun_napi_alloc_frags() function returns -ENOMEM when the number of iovs exceeds MAX_SKB_FRAGS + 1. However this is inappropriate, we should use -EMSGSIZE instead of -ENOMEM. The following distinctions are matters: 1. the caller need to drop the bad packet when -EMSGSIZE is returned, which means meeting a persistent failure. 2. the caller can try again when -ENOMEM is returned, which means meeting a transient failure. Fixes: 90e33d459407 ("tun: enable napi_gro_frags() for TUN/TAP driver") Signed-off-by: Yunjian Wang <wangyunjian@...wei.com> Acked-by: Willem de Bruijn <willemb@...gle.com> --- v2: * update commit log suggested by Willem de Bruijn --- drivers/net/tun.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 2dc1988a8973..15c6dd7fb04c 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -1365,7 +1365,7 @@ static struct sk_buff *tun_napi_alloc_frags(struct tun_file *tfile, int i; if (it->nr_segs > MAX_SKB_FRAGS + 1) - return ERR_PTR(-ENOMEM); + return ERR_PTR(-EMSGSIZE); local_bh_disable(); skb = napi_get_frags(&tfile->napi); -- 2.23.0
Powered by blists - more mailing lists