Received: by 10.213.65.68 with SMTP id h4csp526710imn; Sat, 17 Mar 2018 13:08:53 -0700 (PDT) X-Google-Smtp-Source: AG47ELs1ViOC8dym4XnwRwVCPt4IxTM24OF2JGCRmn0VorS3nZFvcssEszAApZu70hRAHdMVZbTU X-Received: by 10.98.137.147 with SMTP id n19mr5651303pfk.193.1521317333380; Sat, 17 Mar 2018 13:08:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521317333; cv=none; d=google.com; s=arc-20160816; b=YkB9dimSveU9Te5JupKL3zlwzwGfzUgRYF7Jfc64aLU89UbtptD1LMR3WZeAIzG9D4 yD/W+qGANMl7a94QsmrRfkNhjjVwNQuAIXTh8Q3QFU7C1KKZQzaFHHAuoEqyMcLJu8Fl clIrfWSISKk/2ct+yMglH/DuyiyTnLVOOz82z4PimsJ6aiPYNOQJx8PnZrpjeBtTHMzu dp8C3O6Jp4FNRIAcoIfu+vjLGV05bcRV7i9DaOkKUkEXdvSDLF42nhAmX1VAvRsAyZdv ORvGmIcD5FIRjiLM93MzMOlzXbDh2riFYw8aReq1N2AJn4DO9pShwvek+MVwHRxNL83L 0pOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:references:in-reply-to:mime-version :dkim-signature:dkim-signature:arc-authentication-results; bh=K0ma1eCvv31PlpXtqHyGINJxnrvOQdHrFt74V+2axqA=; b=IY9IApRGJU912xoghKLUSFsXU8MIMKWcfCho1B1aG//bZovPUyBMEvF5qmMBYgk0n4 Xn0wfcMnhKIpwNVedPp8CXWx0bgcyZCvmiCUPtm73UZsKvd82vNjPf+wzZELyU1R1wlK HmGmjG6J2EMYbUEBY8nMJ6Glmurnja1HTbwC1ZOvQbZfxXT5fSFs5uqloEkIzN4x3sBM wIkQUKqgFlkZdCgyIr+z96HxLDh919wBtAwZHO3dXOmALvcD4GX0P/wvKHmPS2hxk0Qr qkGoSvbqAHDRwHayLUvVJcpEO+xyqgE4G98KxdEOgTwOqvAGB8LWLG9x8YRkt2Q//tcl snEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@google.com header.s=20161025 header.b=YmboWTyv; dkim=fail header.i=@chromium.org header.s=google header.b=aEd7GQJP; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 4-v6si9080149plb.205.2018.03.17.13.08.37; Sat, 17 Mar 2018 13:08:53 -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=@google.com header.s=20161025 header.b=YmboWTyv; dkim=fail header.i=@chromium.org header.s=google header.b=aEd7GQJP; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753862AbeCQUHi (ORCPT + 99 others); Sat, 17 Mar 2018 16:07:38 -0400 Received: from mail-vk0-f42.google.com ([209.85.213.42]:40437 "EHLO mail-vk0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753259AbeCQUHe (ORCPT ); Sat, 17 Mar 2018 16:07:34 -0400 Received: by mail-vk0-f42.google.com with SMTP id x5so7073716vkd.7 for ; Sat, 17 Mar 2018 13:07:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-transfer-encoding; bh=K0ma1eCvv31PlpXtqHyGINJxnrvOQdHrFt74V+2axqA=; b=YmboWTyvlc19Oa/5nLETN2+w9aFoqJ0ESyGpiy3p8MNG1hzECcvfNkzUgizdeEfZeT rGFXtvvE7Qdpkc5WpK/kYx9kX1GSC1vnZCm3znehSBAn5A7fiRHLkQClqMXeyKo8ov4Q Czpk1JpiTi7z57mIuSh7qlRwdytZZfbYzzLIbEUMyTPrjLg7bUwMFRGRRjsax7SoF7g+ a0X6L9SwYfA3ET34YwqhMlgEpT3cV20f4DaJwLjHmdJUDYj1njosaLZqdQXiuFNBn7/N lYytAwzS9VR5J2ZJ3q2q3e0uKRd0lbk7Hjq2WpzjN3Tr7ehUvlyMHHJup381dLXOo8E8 IE3Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-transfer-encoding; bh=K0ma1eCvv31PlpXtqHyGINJxnrvOQdHrFt74V+2axqA=; b=aEd7GQJPrOIuFpiakwlkNv3mc2rJQnqsH2ZiW5vGjYihc/JKO70OddG3eQDb8tZrJ8 0Ph/6MdHjGtQyCiciMqynpEmLdd9yPsqUw8ujHEvAwIqFb8zVumTXgYj9NnYo22CBKmW 3pXVAPjzGtTkBP7txp2/tzHQWWQh4pZMadJ1g= 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:content-transfer-encoding; bh=K0ma1eCvv31PlpXtqHyGINJxnrvOQdHrFt74V+2axqA=; b=GxyQiaBXAXaImR8Bw2HHnQGt4CI3IJdX9Px35kXHLOuF5grJdX36F2yhL+tr8RPdRV 5bmhoG2zj1dq+Ruy+xmZURRM8plIrB9Kh9lUHcXne5w0p8Tgvghyp1n5LaKTswDieb9r dmvrKLX9q9uwKXaQusbkA7JI9acUHk9mQHeVT+L7zJmc72pBdi79Uu06T22gUsHs5WQk s0bME75WdSl5hiNzJkbWFmiFUYwFS5Z3tAxxy7PhxIRb/796GNMc5KHtkokcMUHSioz7 TgfIvcEBtmuJiqOHvvahuVCqwsODQly4911CLFviGYRiapT09tu82LTu5rSqJvw9xOHk jgYg== X-Gm-Message-State: AElRT7HwbHjr7NIt3cR2h0c7k/Q8SHZBae19vokTsuRSTXI2ntaKDKgr YGqdQugl3WYKrZSrmiJDIP/2YW45jwcKn1R8umFfWg== X-Received: by 10.31.198.131 with SMTP id w125mr4247795vkf.158.1521317253761; Sat, 17 Mar 2018 13:07:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.31.172.6 with HTTP; Sat, 17 Mar 2018 13:07:32 -0700 (PDT) In-Reply-To: References: <1521174359-46392-1-git-send-email-keescook@chromium.org> <20180316175502.GE30522@ZenIV.linux.org.uk> From: Kees Cook Date: Sat, 17 Mar 2018 13:07:32 -0700 X-Google-Sender-Auth: mlaYqob5u4sFQC6sPCTUu3MeFbY Message-ID: Subject: Re: [PATCH v5 0/2] Remove false-positive VLAs when using max() To: Linus Torvalds Cc: Al Viro , Florian Weimer , Andrew Morton , Josh Poimboeuf , Rasmus Villemoes , Randy Dunlap , Miguel Ojeda , Ingo Molnar , David Laight , Ian Abbott , linux-input , linux-btrfs , Network Development , Linux Kernel Mailing List , Kernel Hardening Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Mar 17, 2018 at 11:52 AM, Linus Torvalds wrote: > So the above is completely insane, bit there is actually a chance that > using that completely crazy "x -> sizeof(char[x])" conversion actually > helps, because it really does have a (very odd) evaluation-time > change. sizeof() has to be evaluated as part of the constant > expression evaluation, in ways that "__builtin_constant_p()" isn't > specified to be done. > > But it is also definitely me grasping at straws. If that doesn't work > for 4.4, there's nothing else I can possibly see. No luck! :( gcc 4.4 refuses to play along. And, hilariously, not only does it not change the complaint about __builtin_choose_expr(), it also thinks that's a VLA now. ./include/linux/mm.h: In function =E2=80=98get_mm_hiwater_rss=E2=80=99: ./include/linux/mm.h:1567: warning: variable length array is used ./include/linux/mm.h:1567: error: first argument to =E2=80=98__builtin_choose_expr=E2=80=99 not a constant 6.8 is happy with it (of course). I do think the earlier version (without the sizeof-hiding-builting_constant_p) provides a template for a const_max() that both you and Rasmus would be happy with, though! -Kees --=20 Kees Cook Pixel Security