From patchwork Sun Mar 11 21:12:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Salvatore Mesoraca X-Patchwork-Id: 10274953 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id EE250602BD for ; Sun, 11 Mar 2018 21:12:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DFAFB28BB6 for ; Sun, 11 Mar 2018 21:12:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D44B928BC4; Sun, 11 Mar 2018 21:12:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from mother.openwall.net (mother.openwall.net [195.42.179.200]) by mail.wl.linuxfoundation.org (Postfix) with SMTP id 0C7E428BB6 for ; Sun, 11 Mar 2018 21:12:45 +0000 (UTC) Received: (qmail 12165 invoked by uid 550); 11 Mar 2018 21:12:44 -0000 Mailing-List: contact kernel-hardening-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Delivered-To: mailing list kernel-hardening@lists.openwall.com Received: (qmail 12123 invoked from network); 11 Mar 2018 21:12:43 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=1+qsJTWP7XdEFSMlpRKCt0Nx+Dc+WSNeR+5PJXt3fgU=; b=clZ2aTeoE7POkuQ9TGDO74tsUk6w1TgZ7/4seopGxPZOIQgmURkOnKoPJMzNbFsb1i qSkApDggMvwOYSvxOeUYwI0W50zmw4JAKioZHw98ckWxDCC5HEo5gL09AaTJwAJv5yEx 971SRvWPZJvXt6sgvcXoPfrntQwqmw3sbvEBsna/pZEi5yONVaJUciqU9fr0Koq99+sy XWQePzXEpaX9oc9noS50/8JC2UYg+n7yk67M+kz3qW+OPsBI2at/LqJ6WHZRRjXzUbpL SOcXjD/TOaCl+ThaHOENpsgG+0i1kA6RC+p5+UcdxuNhuaUVFcO/2Gl6PwtMo+9FloAf qshw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=1+qsJTWP7XdEFSMlpRKCt0Nx+Dc+WSNeR+5PJXt3fgU=; b=ZPdQqBp94GkaX1wIhXCCWsiQ8NjWX9pV4QDzvACWCwlPWVB3w6PSY1yjeleK68K3Bc /y59glqvecg8AJcsziIpow9hFB2TSodk3ISw8lOHlrdYhsjf7rjGQpOwnZeFqv4KgHNA ZETDyiIHjTdAaffeXVumvgXrGe4V0BQalyBoXc7I2YL9aT9K+68/ok/ROBQK0/0/RePn M1vQTtPJfoQgkR5unRzS+gS64szeyBlMEClA0BzkNhxCcSXAHXLjRh2WLvIc7PQoDsEJ mo9MSOPw96ubdJy10v5D126dBCUzEPjr/wwvBkUCvnI+xneNGFuaz8sryOExOA5Tbnbr o6sw== X-Gm-Message-State: AElRT7Fch0GV16cj9HnUHazqYHAM4ZtntoSf6GL+uTwQ9moarAtDZLnR Sy9CrjXhc1k+BlFkyGj6IuI= X-Google-Smtp-Source: AG47ELvKg5emNBuDyaq9kHmfFRZc+t8JItyCx8vTRv9WS1h5IohthCvLr6AX9JoL+CKfTZNF1Jd2Zw== X-Received: by 10.223.150.56 with SMTP id b53mr1334648wra.79.1520802752328; Sun, 11 Mar 2018 14:12:32 -0700 (PDT) From: Salvatore Mesoraca To: linux-kernel@vger.kernel.org Cc: kernel-hardening@lists.openwall.com, netdev@vger.kernel.org, "David S. Miller" , "Paul E. McKenney" , David Rientjes , Elena Reshetova , Hans Liljestrand , Kees Cook , Salvatore Mesoraca Subject: [PATCH] net: llc: drop VLA in llc_sap_mcast() Date: Sun, 11 Mar 2018 22:12:04 +0100 Message-Id: <1520802724-17509-1-git-send-email-s.mesoraca16@gmail.com> X-Mailer: git-send-email 1.9.1 X-Virus-Scanned: ClamAV using ClamSMTP Avoid a VLA[1] by using a real constant expression instead of a variable. The compiler should be able to optimize the original code and avoid using an actual VLA. Anyway this change is useful because it will avoid a false positive with -Wvla, it might also help the compiler generating better code. [1] https://lkml.org/lkml/2018/3/7/621 Signed-off-by: Salvatore Mesoraca --- net/llc/llc_sap.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/net/llc/llc_sap.c b/net/llc/llc_sap.c index d90928f..a7f7b8f 100644 --- a/net/llc/llc_sap.c +++ b/net/llc/llc_sap.c @@ -394,8 +394,9 @@ static void llc_sap_mcast(struct llc_sap *sap, const struct llc_addr *laddr, struct sk_buff *skb) { - int i = 0, count = 256 / sizeof(struct sock *); - struct sock *sk, *stack[count]; + int i = 0; + struct sock *sk; + struct sock *stack[256 / sizeof(struct sock *)]; struct llc_sock *llc; struct hlist_head *dev_hb = llc_sk_dev_hash(sap, skb->dev->ifindex); @@ -408,7 +409,7 @@ static void llc_sap_mcast(struct llc_sap *sap, continue; sock_hold(sk); - if (i < count) + if (i < ARRAY_SIZE(stack)) stack[i++] = sk; else { llc_do_mcast(sap, skb, stack, i);