diff --git a/LDP/howto/docbook/Secure-Programs-HOWTO/Secure-Programs-HOWTO.sgml b/LDP/howto/docbook/Secure-Programs-HOWTO/Secure-Programs-HOWTO.sgml index a30e7cf3..cbf304b9 100644 --- a/LDP/howto/docbook/Secure-Programs-HOWTO/Secure-Programs-HOWTO.sgml +++ b/LDP/howto/docbook/Secure-Programs-HOWTO/Secure-Programs-HOWTO.sgml @@ -509,10 +509,10 @@ numbers (). Abstract View of a Program - + - + @@ -17499,7 +17499,7 @@ per the license agreement included above. - + David A. Wheeler diff --git a/LDP/howto/docbook/Secure-Programs-HOWTO/images/dwheel1.jpg b/LDP/howto/docbook/Secure-Programs-HOWTO/images/dwheel1.jpg new file mode 100644 index 00000000..a28024c4 Binary files /dev/null and b/LDP/howto/docbook/Secure-Programs-HOWTO/images/dwheel1.jpg differ diff --git a/LDP/howto/docbook/Secure-Programs-HOWTO/images/dwheeler2003b.jpg b/LDP/howto/docbook/Secure-Programs-HOWTO/images/dwheeler2003b.jpg new file mode 100644 index 00000000..7d81bd9b Binary files /dev/null and b/LDP/howto/docbook/Secure-Programs-HOWTO/images/dwheeler2003b.jpg differ diff --git a/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.dia b/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.dia new file mode 100644 index 00000000..a6f51201 Binary files /dev/null and b/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.dia differ diff --git a/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.eps b/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.eps new file mode 100644 index 00000000..1f326d5f --- /dev/null +++ b/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.eps @@ -0,0 +1,436 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/dwheeler/dwheeler.com/secure-programs/program.dia +%%Creator: Dia v0.84 +%%CreationDate: Wed Jan 10 17:15:11 2001 +%%For: a user +%%Magnification: 1.0000 +%%Orientation: Portrait +%%BoundingBox: 0 0 446 395 +%%Pages: 1 +%%BeginSetup +%%EndSetup +%%EndComments +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /A /B /C /D /E +/F /G /H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W /X /Y +/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c +/d /e /f /g /h /i /j /k /l /m +/n /o /p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/Times-Roman-latin1 + /Times-Roman findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Times-Italic-latin1 + /Times-Italic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Times-Bold-latin1 + /Times-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Times-BoldItalic-latin1 + /Times-BoldItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/AvantGarde-Book-latin1 + /AvantGarde-Book findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/AvantGarde-BookOblique-latin1 + /AvantGarde-BookOblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/AvantGarde-Demi-latin1 + /AvantGarde-Demi findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/AvantGarde-DemiOblique-latin1 + /AvantGarde-DemiOblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Bookman-Light-latin1 + /Bookman-Light findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Bookman-LightItalic-latin1 + /Bookman-LightItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Bookman-Demi-latin1 + /Bookman-Demi findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Bookman-DemiItalic-latin1 + /Bookman-DemiItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Courier-latin1 + /Courier findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Courier-Oblique-latin1 + /Courier-Oblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Courier-Bold-latin1 + /Courier-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Courier-BoldOblique-latin1 + /Courier-BoldOblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-latin1 + /Helvetica findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Oblique-latin1 + /Helvetica-Oblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Bold-latin1 + /Helvetica-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-BoldOblique-latin1 + /Helvetica-BoldOblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Narrow-latin1 + /Helvetica-Narrow findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Narrow-Oblique-latin1 + /Helvetica-Narrow-Oblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Narrow-Bold-latin1 + /Helvetica-Narrow-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Narrow-BoldOblique-latin1 + /Helvetica-Narrow-BoldOblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/NewCenturySchoolbook-Roman-latin1 + /NewCenturySchoolbook-Roman findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/NewCenturySchoolbook-Italic-latin1 + /NewCenturySchoolbook-Italic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/NewCenturySchoolbook-Bold-latin1 + /NewCenturySchoolbook-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/NewCenturySchoolbook-BoldItalic-latin1 + /NewCenturySchoolbook-BoldItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Palatino-Roman-latin1 + /Palatino-Roman findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Palatino-Italic-latin1 + /Palatino-Italic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Palatino-Bold-latin1 + /Palatino-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Palatino-BoldItalic-latin1 + /Palatino-BoldItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Symbol-latin1 + /Symbol findfont +definefont pop +/ZapfChancery-MediumItalic-latin1 + /ZapfChancery-MediumItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/ZapfDingbats-latin1 + /ZapfDingbats findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/colortogray { +/rgbdata exch store +rgbdata length 3 idiv +/npixls exch store +/rgbindx 0 store +0 1 npixls 1 sub { +grays exch +rgbdata rgbindx get 20 mul +rgbdata rgbindx 1 add get 32 mul +rgbdata rgbindx 2 add get 12 mul +add add 64 idiv +put +/rgbindx rgbindx 3 add store +} for +grays 0 npixls getinterval +} bind def +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/colorimage { +pop pop +{colortogray} mergeprocs +image +} bind def + +28.346000 -28.346000 scale +-0.150000 -16.850000 translate +%%EndProlog + + +1.000000 1.000000 1.000000 srgb +n 4.000000 3.000000 m 4.000000 11.000000 l 12.000000 11.000000 l 12.000000 3.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 4.000000 3.000000 m 4.000000 11.000000 l 12.000000 11.000000 l 12.000000 3.000000 l cp s +/Times-Bold-latin1 ff 1.700000 scf sf +0.000000 0.000000 1.000000 srgb +(Program) dup sw 2 div 8.000000 ex sub 5.000000 m gs 1 -1 sc sh gr +/Times-Roman-latin1 ff 1.000000 scf sf +0.000000 0.000000 0.000000 srgb +(Process Data) dup sw 2 div 8.000000 ex sub 7.000000 m gs 1 -1 sc sh gr +/Times-Roman-latin1 ff 0.650000 scf sf +0.000000 0.000000 0.000000 srgb +(\(Structure Program Internals,) dup sw 2 div 8.000000 ex sub 8.000000 m gs 1 -1 sc sh gr +0.000000 0.000000 0.000000 srgb +(Avoid Buffer Overflow,) dup sw 2 div 8.000000 ex sub 8.650000 m gs 1 -1 sc sh gr +0.000000 0.000000 0.000000 srgb +(Language-Specific Issues, &) dup sw 2 div 8.000000 ex sub 9.300000 m gs 1 -1 sc sh gr +0.000000 0.000000 0.000000 srgb +(Special Topics\)) dup sw 2 div 8.000000 ex sub 9.950000 m gs 1 -1 sc sh gr +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0.000000 0.000000 0.000000 srgb +n 1.000000 7.000000 m 4.000000 7.000000 l s +0 slj +0.000000 0.000000 0.000000 srgb +n 3.200000 7.400000 m 4.000000 7.000000 l 3.200000 6.600000 l f +/Times-Roman-latin1 ff 1.000000 scf sf +0.000000 0.000000 0.000000 srgb +(Input) dup sw 2 div 2.000000 ex sub 6.000000 m gs 1 -1 sc sh gr +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0.000000 0.000000 0.000000 srgb +n 12.000000 7.000000 m 15.000000 7.000000 l s +0 slj +0.000000 0.000000 0.000000 srgb +n 14.200000 7.400000 m 15.000000 7.000000 l 14.200000 6.600000 l f +/Times-Roman-latin1 ff 1.000000 scf sf +0.000000 0.000000 0.000000 srgb +(Output) dup sw 2 div 14.000000 ex sub 6.000000 m gs 1 -1 sc sh gr +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0.000000 0.000000 0.000000 srgb +n 8.000000 11.000000 m 8.000000 16.000000 l s +0 slj +0.000000 0.000000 0.000000 srgb +n 8.400000 11.800000 m 8.000000 11.000000 l 7.600000 11.800000 l f +0 slj +0.000000 0.000000 0.000000 srgb +n 7.600000 15.200000 m 8.000000 16.000000 l 8.400000 15.200000 l f +/Times-Roman-latin1 ff 1.000000 scf sf +0.000000 0.000000 0.000000 srgb +(Call-out to) 9.000000 13.050000 m gs 1 -1 sc sh gr +0.000000 0.000000 0.000000 srgb +(other) 9.000000 14.050000 m gs 1 -1 sc sh gr +0.000000 0.000000 0.000000 srgb +(programs) 9.000000 15.050000 m gs 1 -1 sc sh gr +showpage diff --git a/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.gif b/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.gif new file mode 100644 index 00000000..aa295b95 Binary files /dev/null and b/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.gif differ diff --git a/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.png b/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.png new file mode 100644 index 00000000..90745ba5 Binary files /dev/null and b/LDP/howto/docbook/Secure-Programs-HOWTO/images/program.png differ