Hi Russ, This is a rather old comment of yours but I was curious about a few things you said. I agree that Go does take care of a lot of these problems (and most other high-level languages try to too) so I'm curious as to why Go has exposed a build option for generating position independent executables (buildmode=pie). This is something I use and think it is a great feature to have exposed but if the goal was to address most of this stuff at the language level then what was the reason for exposing this to users of Go? I don't think most other high-level languages let you control this setting...although I guess most of them don't really compile down to a native binary in the end.
-Aaron On Monday, April 30, 2012 at 10:21:06 PM UTC-4, Russ Cox wrote: > > On Mon, Apr 30, 2012 at 21:51, David Leimbach <[email protected] > <javascript:>> wrote: > > I was just playing with pointers yesterday, trying to understand a > memory > > issue I thought I was having (me not remembering the memory model > mostly). > > > > I came to the conclusion that pointers were showing up at very much the > same > > memory addresses each time, and that perhaps randomizing this would be a > > good idea. > > Address space randomization is an OS-level workaround for a > language-level problem, namely that simple C programs tend to be full > of exploitable buffer overflows. Go fixes this at the language level, > with bounds-checked arrays and slices and no dangling pointers, which > makes the OS-level workaround much less important. In return, we > receive the incredible debuggability of deterministic address space > layout. I would not give that up lightly. > > Russ > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
