Re: Signed int overflow behaviour in the security context

2007-01-23 Thread James Dennett
Richard Kenner wrote: >> Oh, and teaching all of the programmers out there all the subtle nuances >> of C and trying to get them to write proper code: good luck. That >> simply won't happen. > > If people who write security-critical code in a programming language > can't take time to learn the de

Re: [RFC] Our release cycles are getting longer

2007-01-23 Thread Marcin Dalecki
Wiadomość napisana w dniu 2007-01-24, o godz04:32, przez Andrew Pinski: It's "too good" to be usable. The time required for a full test suite run can be measured by days not hours. Days, only for slow machines. For our PS3 toolchain (which is really two sperate compilers), it takes 6 hours

Re: Level to do such a modification...

2007-01-23 Thread Ben Elliston
> I am working on gcc 4.0.0. I want to use gcc to intercept each call to > read, and taint the data readed in. For example: > transform > read(fd, buf, size) > to > read(fd, buf, size) > if(is_socket(fd)) > taint(buf, size) > So, what is the best suitable level to d

Re: [RFC] Our release cycles are getting longer

2007-01-23 Thread Brooks Moses
Marcin Dalecki wrote: A trivial by nature change like the top level build of libgcc took actually years to come by. I'm not sure how much that's inherently evidence that it was inappropriately difficult to do, though. For example, the quite trivial change of having "make pdf" support for cr

Re: Level to do such a modification...

2007-01-23 Thread 吴曦
Besides that, as far as I know, valgrind can not run on itanium... but I am now working on it :-( 2007/1/24, Nicholas Nethercote <[EMAIL PROTECTED]>: On Wed, 24 Jan 2007, [GB2312] ÎâêØ wrote: > I know valgrind, it is an emulator ,but we are restricted not to use > an emulator. :-( Well, for so

Re: Level to do such a modification...

2007-01-23 Thread 吴曦
Anyway, the program is supervised...would you mind giving some advices with the compiler-based approach, after recompilation, I could finish this modification. 2007/1/24, Nicholas Nethercote <[EMAIL PROTECTED]>: On Wed, 24 Jan 2007, [GB2312] ÎâêØ wrote: > I know valgrind, it is an emulator ,but

Re: char should be signed by default

2007-01-23 Thread Andrew Pinski
On Tue, 2007-01-23 at 23:19 -0600, [EMAIL PROTECTED] wrote: > GCC should treat plain char in the same fashion on all types of machines > (by default). No, no, no. It is up to the ABI what char is. > The ISO C standard leaves it up to the implementation whether a char > declared plain char is sig

char should be signed by default

2007-01-23 Thread devils_advocate
GCC should treat plain char in the same fashion on all types of machines (by default). The ISO C standard leaves it up to the implementation whether a char declared plain char is signed or not. This in effect creates two alternative dialects of C. The GNU C compiler supports both dialects; you ca

Re: Level to do such a modification...

2007-01-23 Thread Nicholas Nethercote
On Wed, 24 Jan 2007, [GB2312] ÎâêØ wrote: I know valgrind, it is an emulator ,but we are restricted not to use an emulator. :-( Well, for some definition of "emulator". Nick

Re: Level to do such a modification...

2007-01-23 Thread 吴曦
I know valgrind, it is an emulator ,but we are restricted not to use an emulator. :-( 2007/1/24, Nicholas Nethercote <[EMAIL PROTECTED]>: On Wed, 24 Jan 2007, [GB2312] ÎâêØ wrote: > I am working on gcc 4.0.0. I want to use gcc to intercept each call to > read, and taint the data readed in. For

Re: Level to do such a modification...

2007-01-23 Thread Nicholas Nethercote
On Wed, 24 Jan 2007, [GB2312] ÎâêØ wrote: I am working on gcc 4.0.0. I want to use gcc to intercept each call to read, and taint the data readed in. For example: transform read(fd, buf, size) to read(fd, buf, size) if(is_socket(fd)) taint(buf, size) So, wh

Re: [RFC] Our release cycles are getting longer

2007-01-23 Thread Andrew Pinski
> > On Tue, 23 Jan 2007 17:54:10 -0500, Diego Novillo <[EMAIL PROTECTED]> said: > > > So, I was doing some archeology on past releases and we seem to be > > getting into longer release cycles. > > Interesting. > > I'm a GCC observer, not a participant, but here are some thoughts: > > As far as

Level to do such a modification...

2007-01-23 Thread 吴曦
Hi, I am working on gcc 4.0.0. I want to use gcc to intercept each call to read, and taint the data readed in. For example: transform read(fd, buf, size) to read(fd, buf, size) if(is_socket(fd)) taint(buf, size) So, what is the best suitable level to do this

Re: [RFC] Our release cycles are getting longer

2007-01-23 Thread Andrew Pinski
> > > Wiadomo¶æ napisana w dniu 2007-01-24, o godz02:30, przez David Carlton: > > > For 4, you should probably spend some time figuring out why bugs are > > being introduced into the code in the first place. Is test coverage > > not good enough? The test coverage is not good for C++ while it i

Re: [RFC] Our release cycles are getting longer

2007-01-23 Thread Marcin Dalecki
Wiadomość napisana w dniu 2007-01-24, o godz02:30, przez David Carlton: For 4, you should probably spend some time figuring out why bugs are being introduced into the code in the first place. Is test coverage not good enough? It's "too good" to be usable. The time required for a full test su

Re: Signed int overflow behaviour in the security context

2007-01-23 Thread Richard Kenner
> Oh, and teaching all of the programmers out there all the subtle nuances > of C and trying to get them to write proper code: good luck. That > simply won't happen. If people who write security-critical code in a programming language can't take time to learn the details of that language relevant

Re: [RFC] Our release cycles are getting longer

2007-01-23 Thread David Carlton
On Tue, 23 Jan 2007 17:54:10 -0500, Diego Novillo <[EMAIL PROTECTED]> said: > So, I was doing some archeology on past releases and we seem to be > getting into longer release cycles. Interesting. I'm a GCC observer, not a participant, but here are some thoughts: As far as I can tell, it looks t

Re: [RFC] Our release cycles are getting longer

2007-01-23 Thread Marcin Dalecki
Wiadomość napisana w dniu 2007-01-24, o godz01:48, przez David Daney: I missed the discussion on IRC, but neither of those front-ends are release blockers. I cannot speak for ADA, but I am not aware that the Java front-end has caused any release delays recently. I am sure you will correct

Re: [RFC] Our release cycles are getting longer

2007-01-23 Thread David Daney
Marcin Dalecki wrote: Wiadomość napisana w dniu 2007-01-23, o godz23:54, przez Diego Novillo: So, I was doing some archeology on past releases and we seem to be getting into longer release cycles. With 4.2 we have already crossed the 1 year barrier. For 4.3 we have already added quite a

Re: Signed int overflow behaviour in the security context

2007-01-23 Thread Richard Kenner
> Yes, absolutely. There is a difference between well-defined and > understood semantics on one hand, and undefined and probably dangerous > behaviour on the other hand. It's the difference between security > audits of C software being hard and completely hopeless. I disagree. Code written with

Re: [RFC] Our release cycles are getting longer

2007-01-23 Thread Joe Buck
On Wed, Jan 24, 2007 at 12:55:29AM +0100, Steven Bosscher wrote: > On 1/23/07, Diego Novillo <[EMAIL PROTECTED]> wrote: > > > >So, I was doing some archeology on past releases and we seem to be > >getting into longer release cycles. With 4.2 we have already crossed > >the 1 year barrier. > > Heh.

Re: [RFC] Our release cycles are getting longer

2007-01-23 Thread Marcin Dalecki
Wiadomość napisana w dniu 2007-01-23, o godz23:54, przez Diego Novillo: So, I was doing some archeology on past releases and we seem to be getting into longer release cycles. With 4.2 we have already crossed the 1 year barrier. For 4.3 we have already added quite a bit of infrastructure

Re: [RFC] Our release cycles are getting longer

2007-01-23 Thread Steven Bosscher
On 1/23/07, Diego Novillo <[EMAIL PROTECTED]> wrote: So, I was doing some archeology on past releases and we seem to be getting into longer release cycles. With 4.2 we have already crossed the 1 year barrier. Heh. Maybe part of the problem here is that the release manager isn't very actively

[RFC] Our release cycles are getting longer

2007-01-23 Thread Diego Novillo
So, I was doing some archeology on past releases and we seem to be getting into longer release cycles. With 4.2 we have already crossed the 1 year barrier. For 4.3 we have already added quite a bit of infrastructure that is all good in paper but still needs some amount of TLC. There was s

Re: Signed int overflow behaviour in the security context

2007-01-23 Thread Andreas Bogk
Ian Lance Taylor wrote: >> You have just seen somebody who can be considered an expert in >> matters of writing C sofware come up with a check that looks >> correct, but is broken under current gcc semantics. That should >> make you think. > I'm not entirely unsympathetic to your arguments, but

Re: raising minimum version of Flex

2007-01-23 Thread Mark Kettenis
Vaclav Haisman wrote: > Gerald Pfeifer wrote: > [...] > > openSUSE 10.2 now comes with flex 2.5.33, but FreeBSD, for example, still > > is at flex 2.5.4. Just some additional data pointes... > FreeBSD has version 2.5.33 as textproc/flex port. But that will not replace the system flex, so it will

Re: RFC: Wextra digest (fixing PR7651)

2007-01-23 Thread Manuel López-Ibáñez
On 23/01/07, Joe Buck <[EMAIL PROTECTED]> wrote: On Tue, Jan 23, 2007 at 07:52:30PM +, Manuel López-Ibáñez wrote: > * A base class is not initialized in a derived class' copy constructor. > > Proposed: move this warning to -Wuninitialized seems the appropriate > solution. However, I am afraid

Re: About building conditional expressions

2007-01-23 Thread Ferad Zyulkyarov
Hi, I've noticed that you've asked a few questions about trees on the list. You might want to read a tutorial on trees in GCC; there are a few kicking around out there. Sure I would like to look at any tutorial. I found some, but most of them were not complete :( I would appreciate if you can

Re: About building conditional expressions

2007-01-23 Thread Tom Tromey
> "Ferad" == Ferad Zyulkyarov <[EMAIL PROTECTED]> writes: Ferad> build(EQ_EXPR, integet_type_node, left, rith); Ferad> which is left == right Ferad> But, as I noticed this function "build" is not maintained (used) by Ferad> gcc any more. Instead build, what else may I use to create a Ferad> c

Re: RFC: Wextra digest (fixing PR7651)

2007-01-23 Thread Joe Buck
On Tue, Jan 23, 2007 at 07:52:30PM +, Manuel López-Ibáñez wrote: > * A base class is not initialized in a derived class' copy constructor. > > Proposed: move this warning to -Wuninitialized seems the appropriate > solution. However, I am afraid that this warning will turn out to be > too noisy

Re: [c++] switch ( enum ) vs. default statment.

2007-01-23 Thread David Nicol
On 1/23/07, Paweł Sikora <[EMAIL PROTECTED]> wrote: typedef enum { X, Y } E; int f( E e ) { switch ( e ) { case X: return -1; case Y: return +1; } + throw runtime_error("invalid value got shoehorned into E enum") } In this examp

Re: RFC: Wextra digest (fixing PR7651)

2007-01-23 Thread Manuel López-Ibáñez
A summary of what has been proposed so far to clean up Wextra follows. Please, your feedback is appreciated. And reviewing patches even more ;-) * Subscripting an array which has been declared register. * Taking the address of a variable which has been declared register. Proposed: new option -W

Re: Signed int overflow behaviour in the security context

2007-01-23 Thread Mark Mitchell
Ian Lance Taylor wrote: > Andreas Bogk <[EMAIL PROTECTED]> writes: > I think a better way to describe your argument is that the compiler > can remove a redundant test which would otherwise be part of a defense > in depth. That is true. The thing is, most people want the compiler > to remove redu

[c++] switch ( enum ) vs. default statment.

2007-01-23 Thread Paweł Sikora
Hi, Please consider following testcase which is a core of PR c++/28236. typedef enum { X, Y } E; int f( E e ) { switch ( e ) { case X: return -1; case Y: return +1; } } In this example g++ produces a warning: e.cpp: In function ‘int f(E)’:

Re: Signed int overflow behaviour in the security context

2007-01-23 Thread Florian Weimer
* Joe Buck: > You appear to mistakenly believe that wrapping around on overflow is > a more secure option. It might be, but it usually is not. There > are many CERT security flaws involving integer overflow; the fact > that they are security bugs has nothing to do with the way gcc > generates co

Re: bug management: WAITING bugs that have timed out

2007-01-23 Thread Mark Mitchell
Mike Stump wrote: > On Jan 11, 2007, at 10:47 PM, Joe Buck wrote: >> The description of WORKSFORME sounds closest: we don't know how to >> reproduce the bug. Should that be used? > > No, not generally. Of the states we have, WORKSFORME seems best to me, and I agree with Joe that there's benefit

Re: Signed int overflow behaviour in the security context

2007-01-23 Thread Ian Lance Taylor
Andreas Bogk <[EMAIL PROTECTED]> writes: > > Making it defined and wrapping doesn't help at all. It just means you > > write different checks, not less of them. > > You have just seen somebody who can be considered an expert in matters > of writing C sofware come up with a check that looks correc

Re: Signed int overflow behaviour in the security context

2007-01-23 Thread Andreas Bogk
Daniel Berlin wrote: > And you think that somehow defining it (which the definition people > seem to favor would be to make it wrapping) ameliorates any of these > concerns? Yes, absolutely. There is a difference between well-defined and understood semantics on one hand, and undefined and probabl

Re: Signed int overflow behaviour in the security context

2007-01-23 Thread Daniel Berlin
> This is a typical example of removing an if branch because signed > overflow is undefined. This kind of code is common enough. I could not have made my point any better myself. And you think that somehow defining it (which the definition people seem to favor would be to make it wrapping) am

Re: order of local variables in stack frame

2007-01-23 Thread Markus Franke
Well, you are right. The code looks good and works also. But I have some kind of a reference implementation which is based on GCC 2.7.2.3. In this version the local variables are allocated the other way around, the way in which I expected. Obviously, the order of allocation has changed till now (4.

Re: About building conditional expressions

2007-01-23 Thread Ferad Zyulkyarov
Thanks a lot, that's it On 1/23/07, Steven Bosscher <[EMAIL PROTECTED]> wrote: On 1/23/07, Ferad Zyulkyarov <[EMAIL PROTECTED]> wrote: > But, as I noticed this function "build" is not maintained (used) by > gcc any more. Instead build, what else may I use to create a > conditional expression nod

Re: About building conditional expressions

2007-01-23 Thread Steven Bosscher
On 1/23/07, Ferad Zyulkyarov <[EMAIL PROTECTED]> wrote: But, as I noticed this function "build" is not maintained (used) by gcc any more. Instead build, what else may I use to create a conditional expression node? Look for buildN where N is a small integer ;-) I think you want build2 for EQ_EX

Re: order of local variables in stack frame

2007-01-23 Thread Andrew Haley
Robert Dewar writes: > Markus Franke wrote: > > > Please let me know whether I missunderstood something completely. If > > this behaviour is correct what can I do to change it to the other way > > around. Which macro variable do I have to change? > > There is no legitimate reason to care a

About building conditional expressions

2007-01-23 Thread Ferad Zyulkyarov
Hi, In the old references there is a function "build" that is used for building tree nodes. Using this function one can build a conditional expression as follows: build(EQ_EXPR, integet_type_node, left, rith); which is left == right But, as I noticed this function "build" is not maintained (use

Re: order of local variables in stack frame

2007-01-23 Thread Robert Dewar
Markus Franke wrote: Please let me know whether I missunderstood something completely. If this behaviour is correct what can I do to change it to the other way around. Which macro variable do I have to change? There is no legitimate reason to care about the order of variables in the local stac

order of local variables in stack frame

2007-01-23 Thread Markus Franke
Dear GCC Developers, I am working on a target backend for the DLX architecture and I have a question concerning the layout of the stack frame. Here is a simple test C-program: ---snip--- int main(void) { int a = 1; int b = 2; int c = a + b; return c; } ---snap---

Re: raising minimum version of Flex

2007-01-23 Thread Paolo Bonzini
I'm not at all impressed with the recent series of flex releases, since it started using m4 internally and passing user code through m4. (cf. bison, which unlike flex pays proper attention to assuring that arbitrary valid parsers are not mangled by m4). Fully agreed. The recent releases o

Re: Signed int overflow behaviour in the security context

2007-01-23 Thread Andreas Bogk
Ian Lance Taylor wrote: > Consider code along these lines: > > struct s { int len; char* p; }; > > inline char > bar (struct s *sp, int n) > { > if (n < 0) > abort (); > if (n > sp->len) > abort (); > return sp->p[n]; > } > > void > foo (struct s *sp, int n) > { > int len = sp->l