Received: by 10.213.65.68 with SMTP id h4csp618618imn; Fri, 16 Mar 2018 13:26:45 -0700 (PDT) X-Google-Smtp-Source: AG47ELtvCPkFtMVU634tO5yyhuQEHJBJFSE/qlLiRwhF1147SJu/MEfJ91hvETlgVIhYGLbYXhVN X-Received: by 2002:a17:902:6841:: with SMTP id f1-v6mr2783351pln.391.1521232005088; Fri, 16 Mar 2018 13:26:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521232005; cv=none; d=google.com; s=arc-20160816; b=pBx+NFMPECDjO//an2z/eQkDtM0A+NiBZMIB2kCXB5odW17Z49xUuQB3GwdQZxQSvp vkKw/0F7y0j+YAVYKZaEUUa3HzApY64JoTMbRCgTgwc5JS8bRcO9j6UgQdY0q1D8k0tm RVeeWYuFFGXK8mCklyGxM28BInSbHi12pEo+yF7hADJm9V7IsW0Z5HGXqLXZ+8CsGSDc ImUcCKvgCSVIYwdWhiEwFbeh0cRspTPxKqMlOBDiwktjWaMVNTunKIfu3RLJOmqNT6R9 yzkuGmUFSz8fC5BCRJKLWqPiyKuctMNFxtO/yfOdBeBICkuD8ix4UnTvzvZjj6Xdyut7 3udw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature:dkim-signature :arc-authentication-results; bh=B7SYsUU2KYaw3OS6eJAaEVYDxGMBq9q/5/NmUhI2ocU=; b=jJ0uKLGrTTDyMoe0qOB4Ae+CN3a4kd3g8yViCBAOvFdcG0K/qVacV+qgUAUhxDuG8x c5teAOT84HLYN29GN/VopYAluIFPA61iywXsQtIUt3zJvbsP5vArnMBQeLMU8A9goVso 9/l5FxS2I2JWK+1Uc7dvlNI6HFQZqXHFuRDAUpzcLZPan1LiA8HOPscNl/W34kdxysed Rp5xQmOlscWPC0l7ymHvJFH9L16mQItu4xZPHhCbhxjRhsn6nFcIhhx68F2zAF34fpKT 68dlQtjJoB1FgUFYIz6cDu0DzU+j7IrKg5Qy3Tp2I3JtppZnpJ+Utci7Ic7jQaB1mtBJ W10A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=iaq6ym3/; dkim=fail header.i=@linux-foundation.org header.s=google header.b=WxQGLT5L; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z28si2782614pfi.240.2018.03.16.13.26.29; Fri, 16 Mar 2018 13:26:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=iaq6ym3/; dkim=fail header.i=@linux-foundation.org header.s=google header.b=WxQGLT5L; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752745AbeCPUZa (ORCPT + 99 others); Fri, 16 Mar 2018 16:25:30 -0400 Received: from mail-io0-f178.google.com ([209.85.223.178]:41265 "EHLO mail-io0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751693AbeCPUZ2 (ORCPT ); Fri, 16 Mar 2018 16:25:28 -0400 Received: by mail-io0-f178.google.com with SMTP id m83so14015529ioi.8; Fri, 16 Mar 2018 13:25:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=B7SYsUU2KYaw3OS6eJAaEVYDxGMBq9q/5/NmUhI2ocU=; b=iaq6ym3/hXdx2E04cVReHOWE7vUh8Zx9i83zrG8/w5BbXhSdKWx6i+HhEG/wZk+cwm Wk8okpKTqqvctuDWIxzVAqGTfcu1y3I7UriXfno8uGd25zoZzN1uNsiO+f2rD7l+nfla Yv1jfZiYgAZ7Nwi/4U9Nd4crrb3dZz0RQto7t3LplfCLLc+jZtNq5t8yPl25RDJO1KYl 5eZsA3HxxLcgjVih514Q3YofPNxlyz1sSR7Gw6zvyCB0xlUbcx2MqBgGY70OzjzGp28G 2DTPOcIhx5sgT+Xmfz0bQ4b++PZTN26HMMlQWK4Ujx66UFmk+eA6+MD6YvKXm9GiDqt5 q0lg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=B7SYsUU2KYaw3OS6eJAaEVYDxGMBq9q/5/NmUhI2ocU=; b=WxQGLT5LnKAeK3n7wuN91eP6b6MLnmFYsteyyo8XzjBHou7o5aKE02KfFCHq/aTilG emKnIh2u3cG9pFHKSoXOCHiLZRbzhRC/QE4tRjkkKmCsxpRcenymtw9tNghx1z7cVKL5 Gksow27+c66OKD4/7MFCOZ9sYtXvoeIGlH4Wo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=B7SYsUU2KYaw3OS6eJAaEVYDxGMBq9q/5/NmUhI2ocU=; b=InjCvteWzRsnn+KoVKavK1+c3j8P5gl5+7vT+mJIjeKI2cJAo4YZitLpofeIMu0LAS bvLIXt7BWgu2fcWJP2KUvIIICejAQJmHhhLwArfKAV+5iN23wBy7wCQXSIj12VA4X5Pp whLBGP93BcjZD7/jXJ+zNyrcNH92Zdzez+5D/nTDBkAbz1A2UfRTGrrPQNKBZHEFsbG3 T1el1wOl6qyY+Z+5atGdxV2PVsJMGUxJr3tisfUxX1gzVMczJxWs2bzZ5tFx6zZ80Slh 0aAcVBHEIrWVurrVkNdaSR745qUOAbO+z4FvrcXB7QaX0POcyh9LvCICRCJLt9M3VrTH c2dA== X-Gm-Message-State: AElRT7Hc/HaMexx4X7iaotgqpjkjmgqvCzY+M5F9yQVb/QwKk1qQjben i0tv1H8Lhqgl7bisnQp2tIPQrZff44zFn7QxvL8= X-Received: by 10.107.22.1 with SMTP id 1mr3475948iow.238.1521231927135; Fri, 16 Mar 2018 13:25:27 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.135.221 with HTTP; Fri, 16 Mar 2018 13:25:26 -0700 (PDT) In-Reply-To: References: <1521174359-46392-1-git-send-email-keescook@chromium.org> From: Linus Torvalds Date: Fri, 16 Mar 2018 13:25:26 -0700 X-Google-Sender-Auth: KAVq3SYkYefZGUKKtMf3qu7pTK4 Message-ID: Subject: Re: [PATCH v5 0/2] Remove false-positive VLAs when using max() To: David Laight Cc: Florian Weimer , Kees Cook , Andrew Morton , Josh Poimboeuf , Rasmus Villemoes , Randy Dunlap , Miguel Ojeda , Ingo Molnar , Ian Abbott , linux-input , linux-btrfs , Network Development , Linux Kernel Mailing List , Kernel Hardening Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 16, 2018 at 10:44 AM, David Laight wrote: > > I looked at the generated code for one of the constant sized VLA that > the compiler barfed at. > It seemed to subtract constants from %sp separately for the VLA. > So it looks like the compiler treats them as VLA even though it > knows the size. > That is probably missing optimisation. Looking at the code is definitely an option. In fact, instead of depending on -Wvla, we could just make 'objtool' warn about real variable-sized stack frames. That said, if that "sizeof()" trick of Al's actually works with older gcc versions too (it *should*, but it's not like __builtin_choose_expr() and __builtin_constant_p() have well-defined rules in the standard), that may just be the solution. And if gcc ends up generating bad code for those "constant sized vlas" anyway, then -Wvla would effectively warn about that code generation problem. Linus