TIP: Click on subject to list as thread! ANSI
echo: nthelp
to: All
from: Tony Ingenoso
date: 2004-02-24 01:10:54
subject: Re: cpu changes

From: "Tony Ingenoso" 

Its not a language problem (in the language spec sense), its an
implementation issue in the way the compilers are generating code.

THERE IS NO REQUIREMENT THAT THE STACK BE USED DURING NORMAL APPLICATION
PROGRAM OPS ON the x86 ARCHITECTURE (the hardware interrupt architecture
needs it for certain things though).  We simply have chosen to do it that
way for convenience.

The C/C++ language has NO REQUIREMENT OR NEED for a stack.  C/C++ compilers
have been implemented on a number of architectures that don't have hardware
stacks - most notably the S/370.

The S/370's implement function call/return using a register convention.
Autovars are allocated/deallocated on function entry and exit from pools.

A couple of years ago I wrote a C malloc/free replacement package that
would provide byte granular protection against overruns in any given memory
allocation.  Its not all that hard - it does cost some CPU and it does tend
to expand the page tables for a given process.

Of course, the old 80286 didn't have any of these vulnerabilities

"Geo."  wrote in message
news:403a699f$1{at}w3.nls.net...
>
> The problem is hard to detect, as popular programming languages, like C and
> C++ do not make it easy to track when programs are vulnerable to overflow.

--- BBBS/NT v4.01 Flag-5
* Origin: Barktopia BBS Site http://HarborWebs.com:8081 (1:379/45)
SEEN-BY: 633/267 270
@PATH: 379/45 1 633/267

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.