No argument - base C "strings" (null terminated char[]) are a PITA from C
programmers POV, since you must ever vigilant.   Good programming practices
and standards are key.   Besides the obvious use of strncpy(), strncat(),
etc, BSD (considered by most as the most secure *nix OS) encourages
strlcpy() and strlcat() - (http://www.courtesan.com/todd/papers/strlcpy.html
 )

But other metal-level language implementations are not care free - consider
length-prefixed strings - the programmer must still check lengths before
moving data.

Higher level languages where objects (not just variables) is strongly typed
and programmers can't manipulate memory directly are considerably safer
from these sorts of attack vectors.

And C is probably here to stay (consider IFL sales) :-)

Kirk Wolf
Dovetailed Technologies
http://dovetail.com

PS> As an attempt to tie back to the original thread - consider the new
transaction instructions.   Since all Java array bounds and pointer derefs
must be checked, it makes it difficult to tightly inline the machine
instructions that are generated at run time.   With the new transaction
instructions, you can inline the happy path only.  (Or at least that is my
fuzzy understanding)

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to