comp.lang.ada
 help / color / mirror / Atom feed
From: Vinzent 'Gadget' Hoefler <ada.rocks@jlfencey.com>
Subject: Re: C's trikery semantic opens up backdoor in new Linux kernel
Date: Fri, 14 Nov 2003 17:38:43 +0100
Date: 2003-11-14T17:38:43+01:00	[thread overview]
Message-ID: <bp30hh$1jr66r$1@ID-175126.news.uni-berlin.de> (raw)
In-Reply-To: iPmdnYL7tN64ZCmiRVn-jw@comcast.com

Robert I. Eachus wrote:

>if (options == (__WCLONE|__WALL) && current->uid = 0)
>
>would generate a compiler warning message about the assignment to 
>current -> uid.  The Linux kernel coding standards make "redundant" 
>parentheses in conditions illegal for exactly that reason,

So you're saying that a style to use parentheses where it is not
*absolutely* clear which is meant is a bad style? Yes, I am talking
about operator precedence, this is especially bad in C where
programmer and compiler might have different opinions about a
particular construct and still it compiles.

>and one of 
>the things that made it clear that this was an intentional attempt to 
>get root was the "extra" parentheses.

The circumstances tell us that this was intentional, yes.

I'd use constants on the left side, but suppose I would not do that,
then I would more tend to write:

|if ((options == (__WCLONE|__WALL)) && (current->uid == 0))

without any bad ideas in mind.

Hmm. Now the typo, a job on a banking account system and, because I
wrote the parentheses, which in turn prove I was intentionally doing
that, I'm going to jail.


Vinzent.



  reply	other threads:[~2003-11-14 16:38 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-12  3:17 C's trikery semantic opens up backdoor in new Linux kernel Adrian Hoe
2003-11-12  4:26 ` Stephane Richard
2003-11-12  5:13   ` J Cusick
2003-11-12  7:18     ` Vinzent 'Gadget' Hoefler
2003-11-12  7:50       ` Duncan Sands
2003-11-12 12:08         ` Vinzent 'Gadget' Hoefler
2003-11-12 13:38           ` Duncan Sands
2003-11-12 14:09             ` Vinzent 'Gadget' Hoefler
2003-11-13 21:04               ` Craig Carey
2003-11-14  6:45                 ` Freejack
2003-11-14  8:33                 ` Erlo Haugen
2003-11-14  9:44                   ` Vinzent 'Gadget' Hoefler
2003-11-14 10:16                     ` Dmitry A. Kazakov
2003-11-25 10:06                       ` Craig Carey
2003-11-25 11:20                         ` Dmitry A. Kazakov
2003-11-14 15:31                 ` Robert I. Eachus
2003-11-14 13:12               ` Georg Bauhaus
2003-11-14 13:31                 ` Duncan Sands
2003-11-14 14:56                 ` Vinzent 'Gadget' Hoefler
2003-11-14 15:08                   ` Georg Bauhaus
2003-11-14 15:38                     ` Duncan Sands
2003-11-14 17:57                       ` Georg Bauhaus
2003-11-14 15:47               ` Robert I. Eachus
2003-11-14 16:38                 ` Vinzent 'Gadget' Hoefler [this message]
2003-11-19  4:13             ` Dave Thompson
2003-11-21 15:34               ` Martin Krischik
2003-11-23  2:20                 ` Hyman Rosen
2003-11-27  4:22                 ` Dave Thompson
2003-11-28 14:01                   ` Hyman Rosen
2003-11-12 17:37       ` tmoran
2003-11-12 18:03       ` Warren W. Gay VE3WWG
2003-11-12  8:51     ` Adrian Hoe
2003-11-12 12:32       ` Preben Randhol
2003-11-13  5:50         ` Chad R. Meiners
2003-11-12 22:59       ` Wes Groleau
2003-11-14  3:31         ` Adrian Hoe
2003-11-14 11:00           ` Dmytry Lavrov
2003-11-15  5:00             ` Adrian Hoe
2003-11-15  5:02             ` Adrian Hoe
2003-11-16 11:29               ` Dmytry Lavrov
2003-11-17 17:07                 ` Warren W. Gay VE3WWG
2003-11-16 11:35             ` Dmytry Lavrov
2003-11-15 19:30           ` Wes Groleau
2003-11-12  8:52   ` Adrian Hoe
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox