lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 22 May 2007 22:34:19 +0530 From: "Satyam Sharma" <satyam.sharma@...il.com> To: "Adrian Bunk" <bunk@...sta.de> Cc: "Robert P. J. Day" <rpjday@...dspring.com>, "Linux Kernel Mailing List" <linux-kernel@...r.kernel.org> Subject: Re: any value to "NORET_TYPE" macro? On 5/22/07, Adrian Bunk <bunk@...sta.de> wrote: > On Tue, May 22, 2007 at 10:04:16AM -0400, Robert P. J. Day wrote: > > On Tue, 22 May 2007, Adrian Bunk wrote: > > > > > On Tue, May 22, 2007 at 09:09:22AM -0400, Robert P. J. Day wrote: > > > > > > > > given that: > > > > > > > > $ grep -r "define.*NORET_TYPE" * > > > > include/linux/ext4_fs.h:# define NORET_TYPE /**/ > > > > include/linux/linkage.h:#define NORET_TYPE /**/ > > > > include/linux/ext3_fs.h:# define NORET_TYPE /**/ > > > > $ > > > > > > > > is there any obvious value to the 30 or so uses of that macro > > > > sprinkled throughout the tree? > > > > > > I can be mistaken, but it seems the uses should be replaced with your > > > __noreturn > > > > no, i think you're thinking of the alternative ATTRIB_NORET macro. > > as you can read in my previous post, NORET_TYPE used to resolve to > > "__volatile__" for very old gcc. so i think it's legitimately dead > > and can be ripped out. > > No doubt that it could be removed because it doesn't have any effect. > > But locking at the usages, it seems to have been used when people > thought it was what __noreturn now is, so replacing NORET_TYPE with > __noreturn might be a small optimization (but every NORET_TYPE should > be checked that it's actually correct). Adrian's right, and in fact from ... http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html ... we know why that macro existed and evaluated to __volatile__ for pre-2.5 gcc. Perhaps most of today's users of NORET_TYPE were probably looking for ATTRIB_NORET (which is quite common) actually. [ __noreturn is defined in compiler-gcc.h, so the easier way would be to kill NORET_TYPE and replace its usages with ATTRIB_NORET instead. Of course, after verifying that the function _really_ never returns. ] - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists