Re: http://www.smashguard.org
On Fri, Feb 06, 2004 at 03:29:30PM -0500, Hilmi Ozdoganoglu composed:
>
> Agreed, the software based approach does not take a significant
> performance hit, but the hardware approach is transparent to the user
> and does not require recompilation of the source code. Therefore, all
> programs can run securely on a machine whether or not they are "compiled
> securely" (e.g. legacy software).
Not all control flow follows stack logic. So you can't claim
backwards compatibility on all programs.
What happens if you are compiling continuations, such as a
high-performance ML or scheme environment?
A scheme environment may often need to keep around call-stacks after
they are exited, because call-with-current-continuation can cause them
to be reentered again.
Similarly, you mention the problem with user-land threads, yet
specifically don't solve it (just handwave it a bit).
Likewise, what happens on table-blowout? You are using fixed-sized
tables, what happens when they fill up (and they WILL fill up.
Resources in a CPU should be 0, 1, or infinite, at least from the
user's point of view).
--
Nicholas C. Weaver nweaver@xxxxxxxxxxxxxxx