Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935329AbcJUP5Z (ORCPT ); Fri, 21 Oct 2016 11:57:25 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:62687 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753173AbcJUP5W (ORCPT ); Fri, 21 Oct 2016 11:57:22 -0400 From: Arnd Bergmann To: "David S. Miller" Cc: Arnd Bergmann , Alexander Duyck , Tom Herbert , Jiri Pirko , Hadar Hen Zion , Gao Feng , Eric Garver , Amir Vadai , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] flow_dissector: avoid uninitialized variable access Date: Fri, 21 Oct 2016 17:55:53 +0200 Message-Id: <20161021155626.4020344-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:d8oss+QSWQuKhbKKmICzkEBx+xCRMyasTaVS/Q7wyCY/1sJyEoK y7WK/yYl0j9NeqLFfxif45pnmLeo1DPl1fXsYBjN1cnKJ4xSp2ofiHw+fYrAyWTiWsWp8mR VPqBCvX2VmCFk6cm2zB8zYzXeCczDsD8uwOexkx4Xpli5NeFpZU43uY3SsbqYx2Y9RdV/46 r3NfoZ2xqWt+a8pds1cQg== X-UI-Out-Filterresults: notjunk:1;V01:K0:cI1c7sZp2sc=:2BIfuv7ECwfn+v3ShsApvX vQ5eDVyFn5Hdx2v0WVq3p6gAN5XCrXfrZX/PHj/0fSj9gLOwGzunzeyUfq8nASyfvMXx527Yn lJdBUcep3XNSz+8yMRS0NdX+33Y6WDFmrkclMzzCZbvPua6jZBr1bb4QOch4wcTJnS7n9smvN SS9TKIsqtjQYXhyZVtAA53+j+u2IdPGKyCp//Yl2cw5j2HbCNdnOcODSEyonzBuZGrpIdeGoK PpfVmfD0BBsnXeETewZvjAwaUDiT/cfrSvwoY6XQvHCZWxFjNSGJFXcM0Mlq9R2nGzwNi4FQk 8I0j0o2wvmphi0P6Ph02PWIllIhVC8MKlDKgQb9wzseA4NSgeYAxvE3XmHYkfJ5sOybVD/fqL xKLes5Hxp1L+nchqcdZGjPna1u7SJyfTFkrOFp18TTWc7SaaiP3Cx1UtgGOwjhVhjoaXiWLBI fKdsHgzSBFcopn/U/oekFjMNAf98o/8qGlFZI0rkBy4kSzj2enBOkfanLMg1dVu4QVYHpwvVB zPP410nD7O0czPtx3b8L5COonXsjIy2HX2QrW9aKyrs0bTfDT06wmU7DOF9ZGziAiPhoaCBQV VX7ZKb5e1GPb08izOzgaqqWyRfmFyBdOsJ7q/u9g2ntC2LTjif/0Fnr+7deI/onrb7VXCk/LE P/X0L6G52b2FjxcRKMSOeuuve/mToMzX7lwEcpz0U6Sr7uJJP+umNMAKx6gANluSjBBs= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1504 Lines: 43 gcc warns about an uninitialized pointer dereference in the vlan priority handling: net/core/flow_dissector.c: In function '__skb_flow_dissect': net/core/flow_dissector.c:281:61: error: 'vlan' may be used uninitialized in this function [-Werror=maybe-uninitialized] >From all I can tell, this warning is about a real bug, and we should not attempt look up the vlan header if there was no vlan tag. Fixes: f6a66927692e ("flow_dissector: Get vlan priority in addition to vlan id") Signed-off-by: Arnd Bergmann --- I'm not sure about this one, please have a closer look at what the original code does before applying. --- net/core/flow_dissector.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c index 44e6ba9d3a6b..dd6003bf27e1 100644 --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c @@ -245,7 +245,7 @@ bool __skb_flow_dissect(const struct sk_buff *skb, } case htons(ETH_P_8021AD): case htons(ETH_P_8021Q): { - const struct vlan_hdr *vlan; + const struct vlan_hdr *vlan = NULL; if (skb && skb_vlan_tag_present(skb)) proto = skb->protocol; @@ -264,7 +264,7 @@ bool __skb_flow_dissect(const struct sk_buff *skb, } skip_vlan = true; - if (dissector_uses_key(flow_dissector, + if (vlan && dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_VLAN)) { key_vlan = skb_flow_dissector_target(flow_dissector, FLOW_DISSECTOR_KEY_VLAN, -- 2.9.0