From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1EB65C282C0 for ; Wed, 23 Jan 2019 14:59:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E0FC920870 for ; Wed, 23 Jan 2019 14:59:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726197AbfAWO7O convert rfc822-to-8bit (ORCPT ); Wed, 23 Jan 2019 09:59:14 -0500 Received: from mail.emypeople.net ([216.220.167.73]:40833 "EHLO mail.emypeople.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725862AbfAWO7N (ORCPT ); Wed, 23 Jan 2019 09:59:13 -0500 X-Greylist: delayed 726 seconds by postgrey-1.27 at vger.kernel.org; Wed, 23 Jan 2019 09:59:12 EST Received: from Shop7 ([166.182.241.35]) by mail.emypeople.net (12.1.1 build 4 DEB9 x64) with ASMTP id 201901230947053176; Wed, 23 Jan 2019 09:47:05 -0500 From: "Edwin Zimmerman" To: "'Jani Nikula'" , "'Greg KH'" , "'Kees Cook'" Cc: , "'Ard Biesheuvel'" , , , , , , , , , , , , "'Laura Abbott'" , , "'Alexander Popov'" References: <20190123110349.35882-1-keescook@chromium.org> <20190123110349.35882-2-keescook@chromium.org> <20190123115829.GA31385@kroah.com> <874l9z31c5.fsf@intel.com> In-Reply-To: <874l9z31c5.fsf@intel.com> Subject: RE: [Intel-gfx] [PATCH 1/3] treewide: Lift switch variables out of switches Date: Wed, 23 Jan 2019 09:47:06 -0500 Message-ID: <000001d4b32a$845e06e0$8d1a14a0$@211mainstreet.net> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8BIT X-Mailer: Microsoft Outlook 15.0 Thread-Index: AQK1qhpX7cEQ8qlEpLW6qt3JZ7VVWQH3EeYfAWqRE0oCq0D606PKlQEg Content-Language: en-us Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 23 Jan 2019, Jani Nikula wrote: > On Wed, 23 Jan 2019, Greg KH wrote: > > On Wed, Jan 23, 2019 at 03:03:47AM -0800, Kees Cook wrote: > >> Variables declared in a switch statement before any case statements > >> cannot be initialized, so move all instances out of the switches. > >> After this, future always-initialized stack variables will work > >> and not throw warnings like this: > >> > >> fs/fcntl.c: In function ‘send_sigio_to_task’: > >> fs/fcntl.c:738:13: warning: statement will never be executed [-Wswitch-unreachable] > >> siginfo_t si; > >> ^~ > > > > That's a pain, so this means we can't have any new variables in { } > > scope except for at the top of a function? > > > > That's going to be a hard thing to keep from happening over time, as > > this is valid C :( > > Not all valid C is meant to be used! ;) Very true. The other thing to keep in mind is the burden of enforcing a prohibition on a valid C construct like this. It seems to me that patch reviewers and maintainers have enough to do without forcing them to watch for variable declarations in switch statements. Automating this prohibition, should it be accepted, seems like a good idea to me. -Edwin Zimmerman From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.emypeople.net ([216.220.167.73]:40833 "EHLO mail.emypeople.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725862AbfAWO7N (ORCPT ); Wed, 23 Jan 2019 09:59:13 -0500 From: "Edwin Zimmerman" References: <20190123110349.35882-1-keescook@chromium.org> <20190123110349.35882-2-keescook@chromium.org> <20190123115829.GA31385@kroah.com> <874l9z31c5.fsf@intel.com> In-Reply-To: <874l9z31c5.fsf@intel.com> Subject: RE: [Intel-gfx] [PATCH 1/3] treewide: Lift switch variables out of switches Date: Wed, 23 Jan 2019 09:47:06 -0500 Message-ID: <000001d4b32a$845e06e0$8d1a14a0$@211mainstreet.net> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8BIT Content-Language: en-us Sender: linux-kbuild-owner@vger.kernel.org List-ID: To: 'Jani Nikula' , 'Greg KH' , 'Kees Cook' Cc: dev@openvswitch.org, 'Ard Biesheuvel' , netdev@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, linux-security-module@vger.kernel.org, kernel-hardening@lists.openwall.com, intel-wired-lan@lists.osuosl.org, linux-fsdevel@vger.kernel.org, xen-devel@lists.xenproject.org, 'Laura Abbott' , linux-kbuild@vger.kernel.org, 'Alexander Popov' On Wed, 23 Jan 2019, Jani Nikula wrote: > On Wed, 23 Jan 2019, Greg KH wrote: > > On Wed, Jan 23, 2019 at 03:03:47AM -0800, Kees Cook wrote: > >> Variables declared in a switch statement before any case statements > >> cannot be initialized, so move all instances out of the switches. > >> After this, future always-initialized stack variables will work > >> and not throw warnings like this: > >> > >> fs/fcntl.c: In function ‘send_sigio_to_task’: > >> fs/fcntl.c:738:13: warning: statement will never be executed [-Wswitch-unreachable] > >> siginfo_t si; > >> ^~ > > > > That's a pain, so this means we can't have any new variables in { } > > scope except for at the top of a function? > > > > That's going to be a hard thing to keep from happening over time, as > > this is valid C :( > > Not all valid C is meant to be used! ;) Very true. The other thing to keep in mind is the burden of enforcing a prohibition on a valid C construct like this. It seems to me that patch reviewers and maintainers have enough to do without forcing them to watch for variable declarations in switch statements. Automating this prohibition, should it be accepted, seems like a good idea to me. -Edwin Zimmerman From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [1/3] treewide: Lift switch variables out of switches From: Edwin Zimmerman Message-Id: <000001d4b32a$845e06e0$8d1a14a0$@211mainstreet.net> Date: Wed, 23 Jan 2019 09:47:06 -0500 To: 'Jani Nikula' , 'Greg KH' , 'Kees Cook' Cc: dev@openvswitch.org, 'Ard Biesheuvel' , netdev@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, linux-security-module@vger.kernel.org, kernel-hardening@lists.openwall.com, intel-wired-lan@lists.osuosl.org, linux-fsdevel@vger.kernel.org, xen-devel@lists.xenproject.org, 'Laura Abbott' , linux-kbuild@vger.kernel.org, 'Alexander Popov' List-ID: T24gV2VkLCAyMyBKYW4gMjAxOSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVs LmNvbT4gd3JvdGU6Cj4gT24gV2VkLCAyMyBKYW4gMjAxOSwgR3JlZyBLSCA8Z3JlZ2toQGxpbnV4 Zm91bmRhdGlvbi5vcmc+IHdyb3RlOgo+ID4gT24gV2VkLCBKYW4gMjMsIDIwMTkgYXQgMDM6MDM6 NDdBTSAtMDgwMCwgS2VlcyBDb29rIHdyb3RlOgo+ID4+IFZhcmlhYmxlcyBkZWNsYXJlZCBpbiBh IHN3aXRjaCBzdGF0ZW1lbnQgYmVmb3JlIGFueSBjYXNlIHN0YXRlbWVudHMKPiA+PiBjYW5ub3Qg YmUgaW5pdGlhbGl6ZWQsIHNvIG1vdmUgYWxsIGluc3RhbmNlcyBvdXQgb2YgdGhlIHN3aXRjaGVz Lgo+ID4+IEFmdGVyIHRoaXMsIGZ1dHVyZSBhbHdheXMtaW5pdGlhbGl6ZWQgc3RhY2sgdmFyaWFi bGVzIHdpbGwgd29yawo+ID4+IGFuZCBub3QgdGhyb3cgd2FybmluZ3MgbGlrZSB0aGlzOgo+ID4+ Cj4gPj4gZnMvZmNudGwuYzogSW4gZnVuY3Rpb24g4oCYc2VuZF9zaWdpb190b190YXNr4oCZOgo+ ID4+IGZzL2ZjbnRsLmM6NzM4OjEzOiB3YXJuaW5nOiBzdGF0ZW1lbnQgd2lsbCBuZXZlciBiZSBl eGVjdXRlZCBbLVdzd2l0Y2gtdW5yZWFjaGFibGVdCj4gPj4gICAgc2lnaW5mb190IHNpOwo+ID4+ ICAgICAgICAgICAgICBefgo+ID4KPiA+IFRoYXQncyBhIHBhaW4sIHNvIHRoaXMgbWVhbnMgd2Ug Y2FuJ3QgaGF2ZSBhbnkgbmV3IHZhcmlhYmxlcyBpbiB7IH0KPiA+IHNjb3BlIGV4Y2VwdCBmb3Ig YXQgdGhlIHRvcCBvZiBhIGZ1bmN0aW9uPwo+ID4KPiA+IFRoYXQncyBnb2luZyB0byBiZSBhIGhh cmQgdGhpbmcgdG8ga2VlcCBmcm9tIGhhcHBlbmluZyBvdmVyIHRpbWUsIGFzCj4gPiB0aGlzIGlz IHZhbGlkIEMgOigKPiAKPiBOb3QgYWxsIHZhbGlkIEMgaXMgbWVhbnQgdG8gYmUgdXNlZCEgOykK ClZlcnkgdHJ1ZS4gIFRoZSBvdGhlciB0aGluZyB0byBrZWVwIGluIG1pbmQgaXMgdGhlIGJ1cmRl biBvZiBlbmZvcmNpbmcgYSBwcm9oaWJpdGlvbiBvbiBhIHZhbGlkIEMgY29uc3RydWN0IGxpa2Ug dGhpcy4gIApJdCBzZWVtcyB0byBtZSB0aGF0IHBhdGNoIHJldmlld2VycyBhbmQgbWFpbnRhaW5l cnMgaGF2ZSBlbm91Z2ggdG8gZG8gd2l0aG91dCBmb3JjaW5nIHRoZW0gdG8gd2F0Y2ggZm9yIHZh cmlhYmxlCmRlY2xhcmF0aW9ucyBpbiBzd2l0Y2ggc3RhdGVtZW50cy4gIEF1dG9tYXRpbmcgdGhp cyBwcm9oaWJpdGlvbiwgc2hvdWxkIGl0IGJlIGFjY2VwdGVkLCBzZWVtcyBsaWtlIGEgZ29vZCBp ZGVhIHRvIG1lLgoKLUVkd2luIFppbW1lcm1hbgo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Edwin Zimmerman" Subject: Re: [Intel-gfx] [PATCH 1/3] treewide: Lift switch variables out of switches Date: Wed, 23 Jan 2019 09:47:06 -0500 Message-ID: <000001d4b32a$845e06e0$8d1a14a0$@211mainstreet.net> References: <20190123110349.35882-1-keescook@chromium.org> <20190123110349.35882-2-keescook@chromium.org> <20190123115829.GA31385@kroah.com> <874l9z31c5.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <874l9z31c5.fsf@intel.com> Content-Language: en-us List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: 'Jani Nikula' , 'Greg KH' , 'Kees Cook' Cc: dev@openvswitch.org, 'Ard Biesheuvel' , netdev@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, linux-security-module@vger.kernel.org, intel-wired-lan@lists.osuosl.org, xen-devel@lists.xenproject.org, kernel-hardening@lists.openwall.com, linux-fsdevel@vger.kernel.org, 'Laura Abbott' , linux-kbuild@vger.kernel.org, 'Alexander Popov' List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCAyMyBKYW4gMjAxOSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVs LmNvbT4gd3JvdGU6Cj4gT24gV2VkLCAyMyBKYW4gMjAxOSwgR3JlZyBLSCA8Z3JlZ2toQGxpbnV4 Zm91bmRhdGlvbi5vcmc+IHdyb3RlOgo+ID4gT24gV2VkLCBKYW4gMjMsIDIwMTkgYXQgMDM6MDM6 NDdBTSAtMDgwMCwgS2VlcyBDb29rIHdyb3RlOgo+ID4+IFZhcmlhYmxlcyBkZWNsYXJlZCBpbiBh IHN3aXRjaCBzdGF0ZW1lbnQgYmVmb3JlIGFueSBjYXNlIHN0YXRlbWVudHMKPiA+PiBjYW5ub3Qg YmUgaW5pdGlhbGl6ZWQsIHNvIG1vdmUgYWxsIGluc3RhbmNlcyBvdXQgb2YgdGhlIHN3aXRjaGVz Lgo+ID4+IEFmdGVyIHRoaXMsIGZ1dHVyZSBhbHdheXMtaW5pdGlhbGl6ZWQgc3RhY2sgdmFyaWFi bGVzIHdpbGwgd29yawo+ID4+IGFuZCBub3QgdGhyb3cgd2FybmluZ3MgbGlrZSB0aGlzOgo+ID4+ Cj4gPj4gZnMvZmNudGwuYzogSW4gZnVuY3Rpb24g4oCYc2VuZF9zaWdpb190b190YXNr4oCZOgo+ ID4+IGZzL2ZjbnRsLmM6NzM4OjEzOiB3YXJuaW5nOiBzdGF0ZW1lbnQgd2lsbCBuZXZlciBiZSBl eGVjdXRlZCBbLVdzd2l0Y2gtdW5yZWFjaGFibGVdCj4gPj4gICAgc2lnaW5mb190IHNpOwo+ID4+ ICAgICAgICAgICAgICBefgo+ID4KPiA+IFRoYXQncyBhIHBhaW4sIHNvIHRoaXMgbWVhbnMgd2Ug Y2FuJ3QgaGF2ZSBhbnkgbmV3IHZhcmlhYmxlcyBpbiB7IH0KPiA+IHNjb3BlIGV4Y2VwdCBmb3Ig YXQgdGhlIHRvcCBvZiBhIGZ1bmN0aW9uPwo+ID4KPiA+IFRoYXQncyBnb2luZyB0byBiZSBhIGhh cmQgdGhpbmcgdG8ga2VlcCBmcm9tIGhhcHBlbmluZyBvdmVyIHRpbWUsIGFzCj4gPiB0aGlzIGlz IHZhbGlkIEMgOigKPiAKPiBOb3QgYWxsIHZhbGlkIEMgaXMgbWVhbnQgdG8gYmUgdXNlZCEgOykK ClZlcnkgdHJ1ZS4gIFRoZSBvdGhlciB0aGluZyB0byBrZWVwIGluIG1pbmQgaXMgdGhlIGJ1cmRl biBvZiBlbmZvcmNpbmcgYSBwcm9oaWJpdGlvbiBvbiBhIHZhbGlkIEMgY29uc3RydWN0IGxpa2Ug dGhpcy4gIApJdCBzZWVtcyB0byBtZSB0aGF0IHBhdGNoIHJldmlld2VycyBhbmQgbWFpbnRhaW5l cnMgaGF2ZSBlbm91Z2ggdG8gZG8gd2l0aG91dCBmb3JjaW5nIHRoZW0gdG8gd2F0Y2ggZm9yIHZh cmlhYmxlCmRlY2xhcmF0aW9ucyBpbiBzd2l0Y2ggc3RhdGVtZW50cy4gIEF1dG9tYXRpbmcgdGhp cyBwcm9oaWJpdGlvbiwgc2hvdWxkIGl0IGJlIGFjY2VwdGVkLCBzZWVtcyBsaWtlIGEgZ29vZCBp ZGVhIHRvIG1lLgoKLUVkd2luIFppbW1lcm1hbgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Edwin Zimmerman Date: Wed, 23 Jan 2019 09:47:06 -0500 Subject: [Intel-wired-lan] [Intel-gfx] [PATCH 1/3] treewide: Lift switch variables out of switches In-Reply-To: <874l9z31c5.fsf@intel.com> References: <20190123110349.35882-1-keescook@chromium.org> <20190123110349.35882-2-keescook@chromium.org> <20190123115829.GA31385@kroah.com> <874l9z31c5.fsf@intel.com> Message-ID: <000001d4b32a$845e06e0$8d1a14a0$@211mainstreet.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: intel-wired-lan@osuosl.org List-ID: On Wed, 23 Jan 2019, Jani Nikula wrote: > On Wed, 23 Jan 2019, Greg KH wrote: > > On Wed, Jan 23, 2019 at 03:03:47AM -0800, Kees Cook wrote: > >> Variables declared in a switch statement before any case statements > >> cannot be initialized, so move all instances out of the switches. > >> After this, future always-initialized stack variables will work > >> and not throw warnings like this: > >> > >> fs/fcntl.c: In function ?send_sigio_to_task?: > >> fs/fcntl.c:738:13: warning: statement will never be executed [-Wswitch-unreachable] > >> siginfo_t si; > >> ^~ > > > > That's a pain, so this means we can't have any new variables in { } > > scope except for at the top of a function? > > > > That's going to be a hard thing to keep from happening over time, as > > this is valid C :( > > Not all valid C is meant to be used! ;) Very true. The other thing to keep in mind is the burden of enforcing a prohibition on a valid C construct like this. It seems to me that patch reviewers and maintainers have enough to do without forcing them to watch for variable declarations in switch statements. Automating this prohibition, should it be accepted, seems like a good idea to me. -Edwin Zimmerman