----- Original Message -----
> On Thu, Jul 12, 2012 at 4:44 PM, Brendan Eich <bren...@mozilla.com>
> wrote:
> 
> > I'm more concerned about runtime bugs -- the usual free memory read
> > during a virtual call. Rust will have vtbls, IIRC, and it takes only one
> > rooting or refcounting bug to enable an attacker to reclaim the live
> > object's vtbl.
> > At least, this has been the bane of browsers' existence for over
> > seven years.
> 
> 
> That's fair. In Midori Microsoft formally verified the GC, but CFI
> may have
> better cost/benefit. (Lower benefit, lower or at least different
> costs.)

The part of MS's Singularity work that most closely corresponds to SFI/CFI is 
their use of a type-preserving compiler for C# [1].  This, combined with a 
formal verification of their garbage collector, give them strong guarantees 
about the entire system.  It is, of course, also possible to assume that the GC 
matches some particular specification and go from there, so dying on the hill 
of GC verification is not required.  Rooting is included in this specification 
of mutator behavior. 

Type preserving compilers are pretty great, because you can spot a large number 
of compiler bugs without even running the program you've compiled, but due to 
the very new nature of Rust and the use of LLVM as the backend it seems 
unsuitable for Rust.

Andrew

[1] Type-Preserving Compilation for Large-Scale Optimizing Object-Oriented 
Compilers. Juan Chen, Chris Hawblitzel, Frances Perry, Mike Emmi, Jeremy 
Condit, Derrick Coetzee, and Polyvios Pratikakis.  
http://research.microsoft.com/apps/pubs/default.aspx?id=63653
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to