Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752750AbdI0Mps (ORCPT ); Wed, 27 Sep 2017 08:45:48 -0400 Received: from mail-pf0-f174.google.com ([209.85.192.174]:51047 "EHLO mail-pf0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751959AbdI0Mpq (ORCPT ); Wed, 27 Sep 2017 08:45:46 -0400 X-Google-Smtp-Source: AOwi7QAYkunMZ38+wM+XR4ijasfl4Nj/TcKSFKr/OjQEqR9uIR44RUG3NXg4vq+obYIkS3ftv/oy5Q== Message-ID: <1506516344.6617.39.camel@edumazet-glaptop3.roam.corp.google.com> Subject: Re: [PATCH v2] tun: bail out from tun_get_user() if the skb is empty From: Eric Dumazet To: Alexander Potapenko Cc: davem@davemloft.net, edumazet@google.com, dvyukov@google.com, syzkaller@googlegroups.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Date: Wed, 27 Sep 2017 05:45:44 -0700 In-Reply-To: <1506516168.6617.38.camel@edumazet-glaptop3.roam.corp.google.com> References: <20170927121649.90557-1-glider@google.com> <1506516168.6617.38.camel@edumazet-glaptop3.roam.corp.google.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 720 Lines: 22 On Wed, 2017-09-27 at 05:42 -0700, Eric Dumazet wrote: > Or something cleaner to avoid copy/paste and focus on proper > skb->data[0] access and meaning. > > Thanks. > > diff --git a/drivers/net/tun.c b/drivers/net/tun.c > index 3c9985f299503ea65dad7eb3b47e2ab3bef87800..8ddb840687c1bdb24e4182612abc9e362624c3e9 100644 > --- a/drivers/net/tun.c > +++ b/drivers/net/tun.c > @@ -1496,11 +1496,13 @@ static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile, > switch (tun->flags & TUN_TYPE_MASK) { > case IFF_TUN: > if (tun->flags & IFF_NO_PI) { > - switch (skb->data[0] & 0xf0) { > - case 0x40: > + u8 ip_proto = skb->len ? (skb->data[0] >> 4) : 0; And name this variable ip_version ;)