Undefined behaviours in D and C

Walter Bright newshound1 at digitalmars.com
Sun Apr 18 05:46:32 PDT 2010


Michel Fortin wrote:
> There is a very good reason to disallow manipulating the bit pattern in 
> safe D however: memory safety. If you can dereference a pointer made 
> from an arbitrary bit pattern, you may have an exploitable flaw similar 
> to a buffer overrun. Dereferencing an arbitrary value is definitely 
> *not* memory-safe and should *not* be allowed in safe D.

And it is not allowed in safe functions.

> So you shouldn't be able to cast a value to a pointer. The reverse, 
> casting a pointer to a value, makes sense in my opinion: you may want to 
> print the pointer value in a debug output of some sort. There's nothing 
> unsafe with that so it should be allowed.

These are allowed in safe functions.



More information about the Digitalmars-d mailing list