Walter Bright Wrote:

> > Every time I am comparing a signed with an unsigned I have an overflow risk
> > in D.
> 
> Not every time, no. In fact, it's rare. I believe you are *way* overstating 
> the 
> case. If you were right I'd be reading all the time about integer overflow 
> bugs, 
> not buffer overflow bugs.

BTW, numeric overflow checks are not enabled by default in C# compiler. Though, 
once or twice I need to have the check, and C# helps me here. Just like you put 
asserts you can put overflow checks. And you can prove yourself, why language 
integrated asserts are helpful.

> Find any places actually vulnerable to a 
> signed/unsigned error or overflow error (not theoretically vulnerable). For 
> example, an overflow that would not happen unless the program had run out of 
> memory long before is not an actual bug. The index into the vtable[] is not 
> going to overflow. The line number counter is not going to overflow. The 
> number 
> of parameters is not going to overflow. There are also some places with 
> overflow 
> checks, like in turning numeric literals into binary.

Are they signed? If they're not going to overflow, they don't need to be 
unsigned.

Reply via email to