%!PS-Adobe-3.0 %%BoundingBox: (atend) %%Pages: (atend) %%PageOrder: (atend) %%DocumentFonts: (atend) %%DocumentNeedsFonts: (atend) %%DocumentSuppliedFonts: (atend) %%Creator: Frame 5.5 %%DocumentData: Clean7Bit %%EndComments %%BeginProlog % % Frame ps_prolog 5.5, for use with Adobe Unix Frame 5.5 products % % This ps_prolog file is Copyright (c) 1986-1996 Adobe Systems, Incoporated. % All rights reserved. This ps_prolog file may be freely copied and % distributed in conjunction with documents created using FrameMaker, % FrameMaker+SGML, FrameReader, and FrameViewer as long as this % copyright notice is preserved. /FMDocSave save def % % FrameMaker users specify the proper paper size for each print job in the % "Print" dialog's "Printer Paper Size" "Width" and "Height~ fields. If the % printer that the PS file is sent to does not support the requested paper % size, or if there is no paper tray of the proper size currently installed, % then the job will not be printed. The following flag, if set to true, will % cause the job to print on the default paper in such cases. /FMAllowPaperSizeMismatch false def % % Frame products normally print colors as their true color on a color printer % or as shades of gray, based on luminance, on a black-and white printer. The % following flag, if set to true, forces all non-white colors to print as pure % black. This has no effect on bitmap images. /FMPrintAllColorsAsBlack false def % % Frame products can either set their own line screens or use a printer's % default settings. Three flags below control this separately for no % separations, spot separations and process separations. If a flag % is true, then the default printer settings will not be changed. If it is % false, Frame products will use their own settings from a table based on % the printer's resolution. /FMUseDefaultNoSeparationScreen true def /FMUseDefaultSpotSeparationScreen true def /FMUseDefaultProcessSeparationScreen false def % % For any given PostScript printer resolution, Frame products have two sets of % screen angles and frequencies for printing process separations, which are % recomended by Adobe. The following variable chooses the higher frequencies % when set to true or the lower frequencies when set to false. This is only % effective if the appropriate FMUseDefault...SeparationScreen flag is false. /FMUseHighFrequencyScreens true def % % The following is a set of predefined optimal frequencies and angles for various % common dpi settings. This is taken from "Advances in Color Separation Using % PostScript Software Technology," from Adobe Systems (3/13/89 P.N. LPS 0043) % and corrolated with information which is in various PPD (4.0) files. % % The "dpiranges" figure is the minimum dots per inch device resolution which % can support this setting. The "low" and "high" values are controlled by the % setting of the FMUseHighFrequencyScreens flag above. The "TDot" flags control % the use of the "Yellow Triple Dot" feature whereby the frequency id divided by % three, but the dot function is "trippled" giving a block of 3x3 dots per cell. % % PatFreq is a compromise pattern frequency for ps Level 2 printers which is close % to the ideal WYSIWYG pattern frequency of 9 repetitions/inch but does not beat % (too badly) against the screen frequencies of any separations for that DPI. /dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def /CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def /YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def /KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def /CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def /MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def /YLowTDot [ true true false true true false false false ] def /CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def /YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def /KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def /CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def /MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def /YHighTDot [ false false true false false true true false ] def /PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def % % PostScript Level 2 printers contain an "Accurate Screens" feature which can % improve process separation rendering at the expense of compute time. This % flag is ignored by PostScript Level 1 printers. /FMUseAcccurateScreens true def % % The following PostScript procedure defines the spot function that Frame % products will use for process separations. You may un-comment-out one of % the alternative functions below, or use your own. % % Dot function /FMSpotFunction {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 sub } {dup mul exch dup mul add 1 exch sub }ifelse } def % % Line function % /FMSpotFunction { pop } def % % Elipse function % /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add % sqrt 1 exch sub } def % % /FMversion (5.5) def /fMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def /FMPColor fMLevel1 { false /colorimage where {pop pop true} if } { true } ifelse def /FrameDict 400 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } bind def } if /FMshowpage /showpage load def /FMquit /quit load def /FMFAILURE { 2 copy exch = = flush FMshowpage /Helvetica findfont 12 scalefont setfont 72 200 moveto show 72 220 moveto show FMshowpage FMquit } def /FMVERSION { FMversion ne { (Adobe Frame product version does not match ps_prolog! Check installation;) (also check ~/fminit and ./fminit for old versions) FMFAILURE } if } def /fmConcatProcs { /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }def FrameDict begin [ /ALDsave /FMdicttop /FMoptop /FMpointsize /FMsetsize /FMsaveobject /b /bitmapsave /blut /bpside /bs /bstring /bwidth /c /cf /cs /cynu /depth /edown /fh /fillvals /fw /fx /fy /g /gfile /gindex /grnt /gryt /gstring /height /hh /i /im /indx /is /k /kk /landscape /lb /len /llx /lly /m /magu /manualfeed /n /offbits /onbits /organgle /orgbangle /orgbfreq /orgbproc /orgbxfer /orgfreq /orggangle /orggfreq /orggproc /orggxfer /orghalftone /orgmatrix /orgproc /orgrangle /orgrfreq /orgrproc /orgrxfer /orgxfer /pagesave /paperheight /papersizedict /paperwidth /pos /pwid /r /rad /redt /sl /str /tran /u /urx /ury /val /width /width /ws /ww /x /x1 /x2 /xindex /xpoint /xscale /xx /y /y1 /y2 /yelu /yindex /ypoint /yscale /yy /tintGray ] { 0 def } forall /FmBD {bind def} bind def systemdict /pdfmark known systemdict /currentdistillerparams known and { /fMAcrobat true def /FmPD /pdfmark load def /FmPT /show load def currentdistillerparams /CoreDistVersion get 2000 ge { /FmPD2 /pdfmark load def % % Procedure /FmPA defines named destinations. % In order to accommodate all possible scenarios, FrameMaker defines named destinations % for each paragraph, which allows links to arbitrary points in already generated % PDF documents. This feature may cause larger PDF files to be created. % The fmCG flag tells Distiller whether to create named destinations for each % paragraph. This prolog defines two versions of this flag. One of these versions must be % commented out, and the other must be uncommented. % % The following fmCG flag will cause Distiller to create a named destination for % each paragraph. % /fmCG { false } FmBD % % The following fmCG flag will cause Distiller to create a named destination only % for each paragraph known to be a destination. If you do not want Distiller to create % named destinations for each paragraph (thus creating smaller sized PDF documents), % uncomment the following statement and comment out the previous statement. % CAUTION: By making the following statement active, you may lose some links in the % resulting PDF documents. % %%/fmCG { dup 127 string cvs 0 get (G) 0 get eq } FmBD % /FmND { mark exch /Dest exch 5 3 roll /View [ /XYZ 5 -2 roll FmDC null ] /DEST FmPD }FmBD /FmPA { fmCG { pop pop pop } { FmND } ifelse } FmBD } { /FmPD2 /cleartomark load def /FmPA {pop pop pop}FmBD /FmND {pop pop pop}FmBD } ifelse } { /fMAcrobat false def /FmPD /cleartomark load def /FmPD2 /cleartomark load def /FmPT /pop load def /FmPA {pop pop pop}FmBD /FmND {pop pop pop}FmBD } ifelse /FmDC { transform fMDefaultMatrix defaultmatrix itransform cvi exch cvi exch }FmBD /FmBx { dup 3 index lt {3 1 roll exch} if 1 index 4 index lt {4 -1 roll 3 1 roll exch 4 1 roll} if }FmBD /FMnone 0 def /FMcyan 1 def /FMmagenta 2 def /FMyellow 3 def /FMblack 4 def /FMcustom 5 def /fMNegative false def /FrameSepIs FMnone def /FrameSepBlack 0 def /FrameSepYellow 0 def /FrameSepMagenta 0 def /FrameSepCyan 0 def /FrameSepRed 1 def /FrameSepGreen 1 def /FrameSepBlue 1 def /FrameCurGray 1 def /FrameCurPat null def /FrameCurColors [ 0 0 0 1 0 0 0 1] def /FrameColorEpsilon .001 def /eqepsilon { sub dup 0 lt {neg} if FrameColorEpsilon le } bind def /FrameCmpColorsCMYK { 2 copy 0 get exch 0 get eqepsilon { 2 copy 1 get exch 1 get eqepsilon { 2 copy 2 get exch 2 get eqepsilon { 3 get exch 3 get eqepsilon } {pop pop false} ifelse }{pop pop false} ifelse } {pop pop false} ifelse } bind def /FrameCmpColorsRGB { 2 copy 4 get exch 0 get eqepsilon { 2 copy 5 get exch 1 get eqepsilon { 6 get exch 2 get eqepsilon }{pop pop false} ifelse } {pop pop false} ifelse } bind def /RGBtoCMYK { 1 exch sub 3 1 roll 1 exch sub 3 1 roll 1 exch sub 3 1 roll 3 copy 2 copy le { pop } { exch pop } ifelse 2 copy le { pop } { exch pop } ifelse dup dup dup 6 1 roll 4 1 roll 7 1 roll sub 6 1 roll sub 5 1 roll sub 4 1 roll } bind def /CMYKtoRGB { dup dup 4 -1 roll add 5 1 roll 3 -1 roll add 4 1 roll add 1 exch sub dup 0 lt {pop 0} if 3 1 roll 1 exch sub dup 0 lt {pop 0} if exch 1 exch sub dup 0 lt {pop 0} if exch } bind def /FrameSepInit { 1.0 RealSetgray } bind def /FrameSetSepColor { /FrameSepBlue exch def /FrameSepGreen exch def /FrameSepRed exch def /FrameSepBlack exch def /FrameSepYellow exch def /FrameSepMagenta exch def /FrameSepCyan exch def /FrameSepIs FMcustom def setCurrentScreen } bind def /FrameSetCyan { /FrameSepBlue 1.0 def /FrameSepGreen 1.0 def /FrameSepRed 0.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 1.0 def /FrameSepIs FMcyan def setCurrentScreen } bind def /FrameSetMagenta { /FrameSepBlue 1.0 def /FrameSepGreen 0.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 1.0 def /FrameSepCyan 0.0 def /FrameSepIs FMmagenta def setCurrentScreen } bind def /FrameSetYellow { /FrameSepBlue 0.0 def /FrameSepGreen 1.0 def /FrameSepRed 1.0 def /FrameSepBlack 0.0 def /FrameSepYellow 1.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMyellow def setCurrentScreen } bind def /FrameSetBlack { /FrameSepBlue 0.0 def /FrameSepGreen 0.0 def /FrameSepRed 0.0 def /FrameSepBlack 1.0 def /FrameSepYellow 0.0 def /FrameSepMagenta 0.0 def /FrameSepCyan 0.0 def /FrameSepIs FMblack def setCurrentScreen } bind def /FrameNoSep { /FrameSepIs FMnone def setCurrentScreen } bind def /FrameSetSepColors { FrameDict begin [ exch 1 add 1 roll ] /FrameSepColors exch def end } bind def /FrameColorInSepListCMYK { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsCMYK { pop true exit } if } forall dup true ne {pop false} if } bind def /FrameColorInSepListRGB { FrameSepColors { exch dup 3 -1 roll FrameCmpColorsRGB { pop true exit } if } forall dup true ne {pop false} if } bind def /RealSetgray /setgray load def /RealSetrgbcolor /setrgbcolor load def /RealSethsbcolor /sethsbcolor load def end /setgray { FrameDict begin FrameSepIs FMnone eq { RealSetgray } { FrameSepIs FMblack eq { RealSetgray } { FrameSepIs FMcustom eq FrameSepRed 0 eq and FrameSepGreen 0 eq and FrameSepBlue 0 eq and { RealSetgray } { 1 RealSetgray pop } ifelse } ifelse } ifelse end } bind def /setrgbcolor { FrameDict begin FrameSepIs FMnone eq { RealSetrgbcolor } { 3 copy [ 4 1 roll ] FrameColorInSepListRGB { FrameSepBlue eq exch FrameSepGreen eq and exch FrameSepRed eq and { 0 } { 1 } ifelse } { FMPColor { RealSetrgbcolor currentcmykcolor } { RGBtoCMYK } ifelse FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind def /sethsbcolor { FrameDict begin FrameSepIs FMnone eq { RealSethsbcolor } { RealSethsbcolor currentrgbcolor setrgbcolor } ifelse end } bind def FrameDict begin /setcmykcolor where { pop /RealSetcmykcolor /setcmykcolor load def } { /RealSetcmykcolor { 4 1 roll 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat RealSetrgbcolor pop } bind def } ifelse userdict /setcmykcolor { FrameDict begin FrameSepIs FMnone eq { RealSetcmykcolor } { 4 copy [ 5 1 roll ] FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and { 0 } { 1 } ifelse } { FrameSepIs FMblack eq {1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse RealSetgray } ifelse end } bind put fMLevel1 { /patScreenDict 7 dict dup begin <0f1e3c78f0e1c387> [ 45 { pop } {exch pop} .5 2 sqrt] FmBD <0f87c3e1f0783c1e> [ 135 { pop } {exch pop} .5 2 sqrt] FmBD [ 0 { pop } dup .5 2 ] FmBD [ 90 { pop } dup .5 2 ] FmBD <8142241818244281> [ 45 { 2 copy lt {exch} if pop} dup .75 2 sqrt] FmBD <03060c183060c081> [ 45 { pop } {exch pop} .875 2 sqrt] FmBD <8040201008040201> [ 135 { pop } {exch pop} .875 2 sqrt] FmBD end def } { /patProcDict 5 dict dup begin <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -1 -1 moveto 9 9 lineto stroke } bind def <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 4 -4 moveto 12 4 lineto stroke -4 4 moveto 4 12 lineto stroke} bind def <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke -4 4 moveto 4 -4 lineto stroke 4 12 moveto 12 4 lineto stroke} bind def end def /patDict 15 dict dup begin /PatternType 1 def /PaintType 2 def /TilingType 3 def /BBox [ 0 0 8 8 ] def /XStep 8 def /YStep 8 def /PaintProc { begin patProcDict bstring known { patProcDict bstring get exec } { 8 8 true [1 0 0 -1 0 8] bstring imagemask } ifelse end } bind def end def } ifelse /tintCMYK { 1 tintGray sub FrameCurColors 0 4 getinterval aload pop 4 index mul 5 1 roll 3 index mul 5 1 roll 2 index mul 5 1 roll mul 4 1 roll }bind def /tintRGB { 1 tintGray sub FrameCurColors 4 3 getinterval aload pop 1 exch sub 3 index mul 1 exch sub 4 1 roll 1 exch sub 2 index mul 1 exch sub 4 1 roll 1 exch sub mul 1 exch sub 3 1 roll }bind def /combineColor { /tintGray 1 1 FrameCurGray sub FrameCurColors 7 get mul sub def FrameSepIs FMnone eq { graymode fMLevel1 or not { [/Pattern [/DeviceCMYK]] setcolorspace tintCMYK FrameCurPat setcolor } { FrameCurColors 3 get 1.0 ge { tintGray RealSetgray } { fMAcrobat not FMPColor graymode and and { tintCMYK RealSetcmykcolor } { tintRGB RealSetrgbcolor } ifelse } ifelse } ifelse } { FrameCurColors 0 4 getinterval aload FrameColorInSepListCMYK { FrameSepBlack eq exch FrameSepYellow eq and exch FrameSepMagenta eq and exch FrameSepCyan eq and FrameSepIs FMcustom eq and { tintGray } { 1 } ifelse } { FrameSepIs FMblack eq {tintGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} { FrameSepIs FMyellow eq {pop tintGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} { FrameSepIs FMmagenta eq {pop pop tintGray 1.0 exch sub mul 1.0 exch sub exch pop } { FrameSepIs FMcyan eq {pop pop pop tintGray 1.0 exch sub mul 1.0 exch sub } {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse } ifelse graymode fMLevel1 or not { [/Pattern [/DeviceGray]] setcolorspace FrameCurPat setcolor } { graymode not fMLevel1 and { dup 1 lt {pop FrameCurGray} if } if RealSetgray } ifelse } ifelse } bind def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /fMDefaultMatrix matrix def /fMatrix2 matrix def /dpi 72 0 fMDefaultMatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def /sangle 1 0 fMDefaultMatrix defaultmatrix dtransform exch atan def sangle fMatrix2 rotate fMDefaultMatrix defaultmatrix fMatrix2 concatmatrix dup 0 get /sflipx exch def 3 get /sflipy exch def /screenIndex { 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for } bind def /getCyanScreen { FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getMagentaScreen { FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load } bind def /getYellowScreen { FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse screenIndex dup 3 1 roll get 3 1 roll get { 3 div {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat FMSpotFunction } } {/FMSpotFunction load } ifelse 0.0 exch } bind def /getBlackScreen { FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse screenIndex get 45.0 /FMSpotFunction load } bind def /getSpotScreen { getBlackScreen } bind def /getCompositeScreen { getBlackScreen } bind def /FMSetScreen fMLevel1 { /setscreen load }{ { 8 dict begin /HalftoneType 1 def /SpotFunction exch def /Angle exch def /Frequency exch def /AccurateScreens FMUseAcccurateScreens def currentdict end sethalftone } bind } ifelse def /setDefaultScreen { fMLevel1 { FMPColor { orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer } { orgxfer cvx settransfer } ifelse orgfreq organgle orgproc cvx setscreen } { orghalftone sethalftone }ifelse } bind def /setCurrentScreen { FrameSepIs FMnone eq { FMUseDefaultNoSeparationScreen { setDefaultScreen } { getCompositeScreen FMSetScreen } ifelse } { FrameSepIs FMcustom eq { FMUseDefaultSpotSeparationScreen { setDefaultScreen } { getSpotScreen FMSetScreen } ifelse } { FMUseDefaultProcessSeparationScreen { setDefaultScreen } { FrameSepIs FMcyan eq { getCyanScreen FMSetScreen } { FrameSepIs FMmagenta eq { getMagentaScreen FMSetScreen } { FrameSepIs FMyellow eq { getYellowScreen FMSetScreen } { getBlackScreen FMSetScreen } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse } bind def end /FMDOCUMENT { array /FMfonts exch def dup 1 gt {/#copies exch def} {pop} ifelse FrameDict begin 0 ne /manualfeed exch def /paperheight exch def /paperwidth exch def 0 ne /fMNegative exch def 0 ne /edown exch def /yscale exch def /xscale exch def fMLevel1 { manualfeed {setmanualfeed} if /FMdicttop countdictstack 1 add def /FMoptop count def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} {false} ifelse {papersizefailure} if count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for } {2 dict dup /PageSize [paperwidth paperheight] put manualfeed {dup /ManualFeed manualfeed put} if {setpagedevice} stopped {papersizefailure} if } ifelse fMLevel1 not { /orghalftone currenthalftone def }if FMPColor { currentcolorscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def cvlit /orgbproc exch def /orgbangle exch def /orgbfreq exch def cvlit /orggproc exch def /orggangle exch def /orggfreq exch def cvlit /orgrproc exch def /orgrangle exch def /orgrfreq exch def currentcolortransfer fMNegative { 1 1 4 { pop { 1 exch sub } fmConcatProcs 4 1 roll } for 4 copy setcolortransfer } if cvlit /orgxfer exch def cvlit /orgbxfer exch def cvlit /orggxfer exch def cvlit /orgrxfer exch def } { currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def currenttransfer fMNegative { { 1 exch sub } fmConcatProcs dup settransfer } if cvlit /orgxfer exch def } ifelse end } def /FMENDDOCUMENT { FMDocSave restore } def /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit 0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto 0 paperheight lineto 0 0 lineto 1 setgray fill /landscape exch 0 ne def landscape { 90 rotate 0 exch dup /pwid exch def neg translate pop }{ pop /pwid exch def } ifelse edown { [-1 0 0 1 pwid 0] concat } if xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin dup array /fillvals exch def dict /patCache exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /FMBEGINEPSF { end /FMEPSF save def /showpage {} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fw 2 div add fy fh 2 div add translate rotate fw 2 div neg fh 2 div neg translate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate /FMdicttop countdictstack 1 add def /FMoptop count def } bind def /FMENDEPSF { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { %%BeginFeature: *ManualFeed True statusdict /manualfeed true put %%EndFeature } bind def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } bind def /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } bind def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end statusdict begin stopped end } bind def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } bind def /desperatepapersize { mark statusdict begin /setpageparams where { pop paperwidth paperheight 0 1 {setpageparams} stopped } { true } ifelse { /setpagedevice where { pop 1 dict dup begin /PageSize [ paperwidth paperheight ] def end {setpagedevice} stopped } { true } ifelse } { false } ifelse end {cleartomark true}{cleartomark false}ifelse } bind def /papersizefailure { FMAllowPaperSizeMismatch not { (The requested paper size is not available in any currently-installed tray) (Edit the PS file to "FMAllowPaperSizeMismatch true" to use default tray) FMFAILURE } if } def /DiacriticEncoding [ /.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 /quotesingle /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 /grave /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 /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def FMPColor { /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def /BEGINBITMAPCMYK { BITMAPCMYK } def /BEGINBITMAPCMYKc { BITMAPCMYKc } def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def /BEGINBITMAPCMYK { BITMAPCMYKGRAY } def /BEGINBITMAPCMYKc { BITMAPCMYKGRAYc } def } ifelse /K { FMPrintAllColorsAsBlack { 8 1 roll dup 1 eq 2 index 1 eq and 3 index 1 eq and not {7 {pop} repeat 0 0 0 1 0 0 0} if 8 -1 roll } if FrameCurColors astore pop combineColor } bind def /graymode true def fMLevel1 { /fmGetFlip { fMatrix2 exch get mul 0 lt { -1 } { 1 } ifelse } FmBD } if /setPatternMode { fMLevel1 { 2 index patScreenDict exch known { pop pop patScreenDict exch get aload pop freq mul 5 2 roll fMatrix2 currentmatrix 1 get 0 ne { 3 -1 roll 90 add 3 1 roll sflipx 1 fmGetFlip sflipy 2 fmGetFlip neg mul } { sflipx 0 fmGetFlip sflipy 3 fmGetFlip mul } ifelse 0 lt {exch pop} {pop} ifelse fMNegative { {neg} fmConcatProcs } if bind systemdict /setscreen get exec /FrameCurGray exch def } { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/ypoint exch def /xpoint exch def /xindex xpoint 1 add 2 div bpside mul cvi def /yindex ypoint 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne fMNegative {not} if {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen offbits offbits onbits add dup 0 ne {div} {pop pop .5} ifelse fMNegative {1.0 exch sub} if /FrameCurGray exch def } ifelse } { pop pop dup patCache exch known { patCache exch get } { dup patDict /bstring 3 -1 roll put patDict 9 PatFreq screenIndex get div dup matrix scale makepattern dup patCache 4 -1 roll 3 -1 roll put } ifelse /FrameCurGray 0 def /FrameCurPat exch def } ifelse /graymode false def combineColor } bind def /setGrayScaleMode { graymode not { /graymode true def fMLevel1 { setCurrentScreen } if } if /FrameCurGray exch def combineColor } bind def /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /PFill { graymode fMLevel1 or not { gsave 1 setgray eofill grestore } if } bind def /PStroke { graymode fMLevel1 or not { gsave 1 setgray stroke grestore } if stroke } bind def /X { fillvals exch get dup type /stringtype eq {8 1 setPatternMode} {setGrayScaleMode} ifelse } bind def /V { PFill gsave eofill grestore } bind def /Vclip { clip } bind def /Vstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /N { PStroke } bind def /Nclip { strokepath clip newpath } bind def /Nstrk { currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /rarc {rad arcto } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def mark newpath { x1 y1 rad add moveto x1 y2 x2 y2 rarc x2 y2 x2 y1 rarc x2 y1 x1 y1 rarc x1 y1 x1 y2 rarc closepath } stopped {x1 y1 x2 y2 R} if cleartomark } bind def /RRR { /rad exch def normalize /y4 exch def /x4 exch def normalize /y3 exch def /x3 exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath normalize moveto mark { x2 y2 x3 y3 rarc x3 y3 x4 y4 rarc x4 y4 x1 y1 rarc x1 y1 x2 y2 rarc closepath } stopped {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if cleartomark } bind def /C { grestore gsave R clip setCurrentScreen } bind def /CP { grestore gsave Y clip setCurrentScreen } bind def /F { FMfonts exch get [FMsetsize 0 0 FMpointsize 0 0] makefont setfont } bind def /Q { /FMpointsize exch def /FMsetsize FMpointsize def F } bind def /QQ { /FMsetsize exch def /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /Gstrk { savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /Gclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GG { gsave newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath PFill fill grestore } bind def /GGclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath clip newpath restorematrix } bind def /GGstrk { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath restorematrix currentlinewidth exch setlinewidth PStroke setlinewidth } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 2 copy 0.0 0.0 1.0 5 3 roll arc round cvi 360 mod exch round cvi 360 mod eq {closepath} if restorematrix PStroke grestore } bind def /Aclip { newpath savematrix normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /Astrk { Gstrk } bind def /AA { gsave savematrix newpath 3 index 2 div add exch 4 index 2 div sub exch normalize 3 index 2 div sub exch 4 index 2 div add exch translate rotate scale 0.0 0.0 1.0 5 3 roll arc restorematrix PStroke grestore } bind def /AAclip { savematrix newpath normalize translate 0.0 0.0 moveto rotate dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath strokepath clip newpath restorematrix } bind def /AAstrk { GGstrk } bind def /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 7 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /rip { bis ris copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop ris gis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop gis bis copy pop dup add is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /rip4 { kis cis copy pop is 0 cf cs readline pop { ic exch get exec add } forall pop pop cis mis copy pop dup is exch cf cs readline pop { ic exch get exec add } forall pop pop mis yis copy pop dup dup add is exch cf cs readline pop { ic exch get exec add } forall pop pop yis kis copy pop 3 mul is exch cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /wbytes { dup dup 8 gt { pop 8 idiv mul } { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /cvtProc exch def /depth exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def cvtProc /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height depth [width 0 0 height neg 0 height] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /cvtProc exch def /depth exch def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def cvtProc /is width depth wbytes string def /cf currentfile def width height depth [width 0 0 height neg 0 height] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def fMLevel1 { /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /kk cynu magu min yelu min def /u kk currentundercolorremoval exec def % /u 0 def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 kk currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def } { /colorSetup2 { [ /Indexed /DeviceRGB 255 {dup red exch get 255 div exch dup green exch get 255 div exch blue exch get 255 div} ] setcolorspace } bind def } ifelse /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch fmConcatProcs settransfer } bind def /BITMAPCOLOR { /depth 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def fMLevel1 { colorsetup /is width depth wbytes string def /cf currentfile def width height depth [width 0 0 height neg 0 height] {cf is readhexstring pop} {is} {is} true 3 colorimage } { colorSetup2 /is width depth wbytes string def /cf currentfile def 7 dict dup begin /ImageType 1 def /Width width def /Height height def /ImageMatrix [width 0 0 height neg 0 height] def /DataSource {cf is readhexstring pop} bind def /BitsPerComponent depth def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPCOLORc { /depth 8 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def fMLevel1 { colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height depth [width 0 0 height neg 0 height] {ip} {is} {is} true 3 colorimage } { colorSetup2 /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def 7 dict dup begin /ImageType 1 def /Width width def /Height height def /ImageMatrix [width 0 0 height neg 0 height] def /DataSource {ip} bind def /BitsPerComponent depth def /Decode [0 255] def end image } ifelse bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { /depth 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 width getinterval def /gis im width width getinterval def /bis im width 2 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop ris} {gis} {bis} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCMYKc { /depth 32 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /cis im 0 width getinterval def /mis im width width getinterval def /yis im width 2 mul width getinterval def /kis im width 3 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip4 pop cis} {mis} {yis} {kis} true 4 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /gis width string def /bis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCMYK { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /mis width string def /yis width string def /kis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop } { cf mis readhexstring pop } { cf yis readhexstring pop } { cf kis readhexstring pop } true 4 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { /depth 24 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /ris im 0 width getinterval def /gis im width width getinterval def /bis im width 2 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop ris gis bis width gray} image bitmapsave restore grestore } bind def /BITMAPCMYKGRAYc { /depth 32 def gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /lb width depth wbytes def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def /cis im 0 width getinterval def /mis im width width getinterval def /yis im width 2 mul width getinterval def /kis im width 3 mul width getinterval def ws 0 lb getinterval is copy pop /cf currentfile def width height 8 [width 0 0 height neg 0 height] {width rip pop cis mis yis kis width cgray} image bitmapsave restore grestore } bind def /cgray { /ww exch def /k exch def /y exch def /m exch def /c exch def 0 1 ww 1 sub { /i exch def c i get m i get y i get k i get CMYKtoRGB .144 mul 3 1 roll .587 mul 3 1 roll .299 mul add add c i 3 -1 roll floor cvi put } for c } bind def /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /gis width string def /bis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop width gray} image bitmapsave restore grestore } bind def /BITMAPCMYKGRAY { gsave 3 index 2 div add exch 4 index 2 div add exch translate rotate 1 index 2 div neg 1 index 2 div neg translate scale /height exch def /width exch def /bitmapsave save def /is width string def /yis width string def /mis width string def /kis width string def /cf currentfile def width height 8 [width 0 0 height neg 0 height] { cf is readhexstring pop cf mis readhexstring pop cf yis readhexstring pop cf kis readhexstring pop width cgray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def /I { setdash } bind def /J { [] 0 setdash } bind def %%EndProlog %%BeginSetup (5.5) FMVERSION 1 1 0 0 612 792 0 1 23 FMDOCUMENT %%IncludeFont: Times-Roman 0 0 /Times-Roman FMFONTDEFINE %%IncludeFont: Times-Italic 1 0 /Times-Italic FMFONTDEFINE %%IncludeFont: Times-Bold 2 0 /Times-Bold FMFONTDEFINE %%IncludeFont: Courier 3 0 /Courier FMFONTDEFINE %%IncludeFont: ZapfDingbats 4 1 /ZapfDingbats FMFONTDEFINE %%IncludeFont: Times-BoldItalic 5 0 /Times-BoldItalic FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL %%EndSetup %%Page: "1" 1 %%BeginPaperSize: Letter %%EndPaperSize 612 792 0 FMBEGINPAGE 0 FrameSetSepColors [ /Creator (FrameMaker 5.5.6.) /CreationDate (D:19950208095704) /ModDate (D:20060209113649) /DOCINFO FmPD2 FrameNoSep 0 0 0 1 0 0 0 1 K J -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 1) 513.06 749.33 T 1 F ( October 1995) 277.11 36 T 2 18 Q (Fuzz Re) 108.66 708 T (visited: A Re-examination of the Reliability) 170.87 708 T (of) 298.5 684 T (UNIX Utilities and Ser) 200.35 660 T (vices) 374.66 660 T 2 12 Q (Abstract) 283.67 446 T 0 10 Q (We) 100.8 421.33 T (have) 119.54 421.33 T (tested) 143.27 421.33 T (the) 171.46 421.33 T (reliability) 188.53 421.33 T (of) 232.27 421.33 T (a) 245.46 421.33 T (large) 254.76 421.33 T (collection) 279.6 421.33 T (of) 323.89 421.33 T (basic) 337.08 421.33 T (UNIX) 362.48 421.33 T (utility) 392.33 421.33 T (programs,) 421.08 421.33 T (X-Window) 466.21 421.33 T (applications) 100.8 409.33 T (and) 152.34 409.33 T (servers,) 169.99 409.33 T (and) 204.01 409.33 T (network) 221.66 409.33 T (services.) 257.64 409.33 T (We) 295.56 409.33 T (used) 312.64 409.33 T (a) 334.18 409.33 T (simple) 341.83 409.33 T (testing) 371.71 409.33 T (method) 401.59 409.33 T (of) 434.79 409.33 T (subjecting) 446.33 409.33 T (these) 490.65 409.33 T (programs) 100.8 397.33 T (to) 141.18 397.33 T (a) 151.58 397.33 T (random) 158.63 397.33 T (input) 191.8 397.33 T (stream.) 214.97 397.33 T (Our) 246.75 397.33 T (testing) 264.91 397.33 T (methods) 294.2 397.33 T (and) 330.7 397.33 T (tools) 347.75 397.33 T (are) 369.82 397.33 T (largely) 384.64 397.33 T (automatic) 415.03 397.33 T (and) 457.08 397.33 T (simple) 474.14 397.33 T (to) 503.42 397.33 T (use.) 100.8 385.33 T (We) 119.32 385.33 T (tested) 135.89 385.33 T (programs) 161.92 385.33 T (on) 202.38 385.33 T (nine) 215.07 385.33 T (versions) 234.98 385.33 T (of) 271.01 385.33 T (the) 282.03 385.33 T (UNIX) 296.94 385.33 T (operating) 324.62 385.33 T (system,) 365.08 385.33 T (including) 398.05 385.33 T (seven) 438.53 385.33 T (commercial) 463.99 385.33 T (systems) 100.8 373.33 T (and) 135.3 373.33 T (the) 152.57 373.33 T (freely-available) 167.62 373.33 T (GNU) 233.21 373.33 T (utilities) 257.7 373.33 T (and) 290.54 373.33 T (Linux.) 307.81 373.33 T (We) 337.03 373.33 T (report) 353.74 373.33 T (which) 380.45 373.33 T (programs) 407.73 373.33 T (failed) 448.33 373.33 T (on) 473.93 373.33 T (which) 486.76 373.33 T (systems, and identify and categorize the causes of these failures.) 100.8 361.33 T (The) 100.8 337.33 T (result) 118.9 337.33 T (of) 143.67 337.33 T (our) 154.55 337.33 T (testing) 170.44 337.33 T (is) 199.66 337.33 T (that) 208.88 337.33 T (we) 226.43 337.33 T (can) 240.64 337.33 T (crash) 257.07 337.33 T (\050with) 280.73 337.33 T (core) 304.39 337.33 T (dump\051) 324.15 337.33 T (or) 352.81 337.33 T (hang) 363.69 337.33 T (\050infinite) 385.68 337.33 T (loop\051) 420.45 337.33 T (over) 444.11 337.33 T (40%) 464.44 337.33 T (\050in) 485.32 337.33 T (the) 498.98 337.33 T (worst) 100.8 325.33 T (case\051) 126.04 325.33 T (of) 149.6 325.33 T (the) 160.95 325.33 T (basic) 176.19 325.33 T (programs) 199.76 325.33 T (and) 240.55 325.33 T (over) 258.01 325.33 T (25%) 278.8 325.33 T (of) 300.14 325.33 T (the) 311.49 325.33 T (X-Window) 326.73 325.33 T (applications.) 374.74 325.33 T (We) 428.59 325.33 T (were) 445.49 325.33 T (not) 467.94 325.33 T (able) 483.74 325.33 T (to) 503.42 325.33 T (crash) 100.8 313.33 T (any) 124.3 313.33 T (of) 141.14 313.33 T (the) 151.87 313.33 T (network) 166.48 313.33 T (services) 201.65 313.33 T (that) 236.26 313.33 T (we) 253.66 313.33 T (tested) 267.72 313.33 T (nor) 293.44 313.33 T (any) 309.17 313.33 T (of) 326.01 313.33 T (X-Window) 336.74 313.33 T (servers.) 384.13 313.33 T (This) 417.35 313.33 T (study) 437.52 313.33 T (parallels) 461.59 313.33 T (our) 497.87 313.33 T (1990) 100.8 301.33 T (study) 123.29 301.33 T (\050that) 147.46 301.33 T (tested) 168.28 301.33 T (only) 194.1 301.33 T (the) 214.38 301.33 T (basic) 229.09 301.33 T (UNIX) 252.13 301.33 T (utilities\051;) 279.61 301.33 T (all) 318.23 301.33 T (systems) 330.72 301.33 T (that) 364.88 301.33 T (we) 382.38 301.33 T (compared) 396.53 301.33 T (between) 438.45 301.33 T (1990) 474.27 301.33 T (and) 496.76 301.33 T (1995) 100.8 289.33 T (noticeably) 123.87 289.33 T (improved) 168.59 289.33 T (in) 209.99 289.33 T (reliability,) 220.83 289.33 T (but) 265.29 289.33 T (still) 281.14 289.33 T (had) 299.21 289.33 T (significant) 316.72 289.33 T (rates) 362 289.33 T (of) 383.95 289.33 T (failure.) 395.35 289.33 T (The) 427.01 289.33 T (reliability) 445.63 289.33 T (of) 487.58 289.33 T (the) 498.98 289.33 T (basic utilities from GNU and Linux were noticeably better than those of the commercial systems.) 100.8 277.33 T (We) 100.8 253.33 T (also) 118.21 253.33 T (tested) 137.84 253.33 T (how) 164.7 253.33 T (utility) 185.44 253.33 T (programs) 212.87 253.33 T (checked) 254.16 253.33 T (their) 290.45 253.33 T (return) 312.31 253.33 T (codes) 339.71 253.33 T (from) 366.01 253.33 T (the) 388.97 253.33 T (memory) 404.72 253.33 T (allocation) 441.57 253.33 T (library) 484.54 253.33 T (routines) 100.8 241.33 T (by) 135.07 241.33 T (simulating) 147.12 241.33 T (the) 191.39 241.33 T (unavailability) 205.66 241.33 T (of) 262.71 241.33 T (virtual) 273.09 241.33 T (memory.) 301.25 241.33 T (We) 339.12 241.33 T (could) 355.05 241.33 T (crash) 379.32 241.33 T (almost) 402.47 241.33 T (half) 431.19 241.33 T (of) 448.78 241.33 T (the) 459.16 241.33 T (programs) 473.43 241.33 T (that we tested in this way.) 100.8 229.33 T 2 F (Content) 100.8 205.33 T (Indicators:) 138.46 205.33 T 0 F (D.2.5) 188.9 205.33 T (\050Testing) 214.35 205.33 T (and) 250.9 205.33 T (Debugging\051,) 268.56 205.33 T (D.4.9) 322.06 205.33 T (\050Programs) 347.5 205.33 T (and) 392.38 205.33 T (Utilities\051,) 410.05 205.33 T (General) 451.33 205.33 T (terms:) 486.2 205.33 T (random testing, reliability, UNIX.) 100.8 193.33 T 0 12 Q (Barton P) 267.5 622 T (. Miller) 308.5 622 T 3 10 Q (bart@cs.wisc.edu) 258 611.33 T 0 12 Q (Da) 138.83 588 T (vid K) 152.58 588 T (oski) 179.16 588 T (Cjin Pheo) 267.49 588 T (w Lee) 314.86 588 T (V) 389.14 588 T (i) 397.09 588 T (v) 400.12 588 T (ekananda Mag) 405.94 588 T (anty) 476.19 588 T 3 10 Q (dkoski@cs.wisc.edu) 115 577.33 T (cjin@cs.wisc.edu) 258 577.33 T (vivek@cs.wisc.edu) 392 577.33 T 0 12 Q (Ra) 138.32 554 T (vi Murth) 151.41 554 T (y) 193.68 554 T (Ajitkumar Natarajan) 256.51 554 T (Jef) 418.65 554 T (f Steidl) 432.34 554 T 3 10 Q (ravim@cs.wisc.edu) 118 543.33 T (ajitk@cs.wisc.edu) 255 543.33 T (steidl@cae.wisc.edu) 386 543.33 T 0 12 Q (Computer Sciences Department) 229.68 520 T (Uni) 247.82 506 T (v) 265.52 506 T (ersity of W) 271.34 506 T (isconsin) 324.85 506 T (1210 W) 251.23 492 T (. Dayton Street) 288.45 492 T (Madison, WI 53706-1685) 243.84 478 T 72 160 540 175 C 0 0 0 1 0 0 0 1 K 81 173 225 173 2 L 0.5 H 2 Z 0 X N -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 9 Q 0 X (This) 100.8 154 T (work) 119.18 154 T (is) 140.06 154 T (supported) 148.44 154 T (in) 186.32 154 T (part) 195.7 154 T (by) 212.07 154 T (Wright) 223.45 154 T (Laboratory) 251.33 154 T (Avionics) 293.7 154 T (Directorate,) 328.58 154 T (Air) 373.69 154 T (Force) 388.07 154 T (Material) 410.94 154 T (Command,) 443.81 154 T (USAF,) 485.95 154 T (under) 100.8 143 T (grant) 126.72 143 T (F33615-94-1-1525) 150.64 143 T (\050ARPA) 224.06 143 T (order) 256.48 143 T (no.) 280.9 143 T (B550\051,) 297.58 143 T (NSF) 327.75 143 T (Grants) 349.68 143 T (CCR-9100968) 379.1 143 T (and) 437.03 143 T (CDA-9024618,) 455.45 143 T (Department) 100.8 132 T (of) 145.54 132 T (Energy) 155.29 132 T (Grant) 183.53 132 T (DE-FG02-93ER25176,) 206.27 132 T (and) 292.27 132 T (Office) 307.51 132 T (of) 332.75 132 T (Naval) 342.49 132 T (Research) 366.24 132 T (Grant) 401.47 132 T (N00014-89-J-1222.) 424.21 132 T (The) 497.2 132 T (U.S.) 100.8 121 T (Government) 118.57 121 T (is) 165.32 121 T (authorized) 173.09 121 T (to) 212.85 121 T (reproduce) 221.62 121 T (and) 259.36 121 T (distribute) 274.13 121 T (reprints) 309.89 121 T (for) 339.16 121 T (Governmental) 351.42 121 T (purposes) 404.67 121 T (notwithstanding) 438.43 121 T (any) 498.2 121 T (copyright) 100.8 110 T (notation) 137.49 110 T (thereon.) 169.18 110 T (The) 200.61 110 T (views) 216.79 110 T (and) 239.98 110 T (conclusions) 255.16 110 T (contained) 299.85 110 T (herein) 337.03 110 T (are) 361.71 110 T (those) 374.89 110 T (of) 396.08 110 T (the) 405.76 110 T (authors) 418.95 110 T (and) 447.64 110 T (should) 462.82 110 T (not) 489.01 110 T (be) 502.7 110 T (interpreted) 100.8 99 T (as) 142.89 99 T (necessarily) 153.5 99 T (representing) 196.59 99 T (the) 244.18 99 T (official) 258.29 99 T (policies) 287.39 99 T (or) 318.49 99 T (endorsements,) 329.1 99 T (either) 383.94 99 T (expressed) 407.54 99 T (or) 446.14 99 T (implied,) 456.74 99 T (of) 489.6 99 T (the) 500.2 99 T (Wright Laboratory Avionics Directorate or the U.S. Government.) 100.8 88 T FMENDPAGE %%EndPage: "1" 1 %%Page: "2" 2 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 2) 513.06 749.33 T 1 F ( October 1995) 277.11 36 T 2 16 Q (1 INTR) 72 709.33 T (ODUCTION) 123.52 709.33 T 0 12 Q (In) 72 686 T (1990,) 87.14 686 T (we) 119.29 686 T (published) 138.43 686 T (the) 190.25 686 T (results) 210.06 686 T (of) 246.54 686 T (a) 261.69 686 T (study) 272.17 686 T (of) 303.32 686 T (the) 318.46 686 T (reliability) 338.28 686 T (of) 390.09 686 T (standard) 405.24 686 T (UNIX) 451.04 686 T (utility) 486.18 686 T (pro-) 520.01 686 T (grams[2].) 72 672 T (This) 121.68 672 T (study) 146.37 672 T (sho) 175.74 672 T (wed) 192.1 672 T (that) 215.46 672 T (by) 236.82 672 T (using) 252.17 672 T (simple) 281.54 672 T (\050almost) 316.9 672 T (simplistic\051) 356.26 672 T (random) 410.29 672 T (testing) 450.31 672 T (techniques,) 485.68 672 T (we) 72 658 T (could) 89.42 658 T (crash) 119.51 658 T (or) 148.26 658 T (hang) 161.68 658 T (25-33%) 188.43 658 T (of) 229.85 658 T (these) 243.27 658 T (utility) 271.36 658 T (programs.) 303.47 658 T (Fi) 355.22 658 T (v) 364.93 658 T (e) 370.75 658 T (years) 379.5 658 T (later) 408.25 658 T (,) 429.09 658 T (we) 435.52 658 T (ha) 452.94 658 T (v) 464.03 658 T (e) 469.85 658 T (repeated) 478.6 658 T (and) 522.67 658 T (signi\336cantly) 72 644 T (e) 134.41 644 T (xtended) 139.56 644 T (this) 180.63 644 T (study) 201.04 644 T (using) 230.12 644 T (the) 259.19 644 T (same) 276.93 644 T (basic) 304.66 644 T (techniques:) 332.4 644 T (subjecting) 390.13 644 T (programs) 442.53 644 T (to) 490.93 644 T (random) 503.34 644 T (input streams. A distressingly lar) 72 630 T (ge number of UNIX utilities still crash with our tests.) 230.11 630 T (The) 90 614 T (essence) 112.37 614 T (of) 152.72 614 T (our) 166.43 614 T (testing) 186.13 614 T (is) 221.84 614 T (a) 233.56 614 T (program) 242.59 614 T (called) 286.96 614 T (the) 319.32 614 T 1 F (fuzz) 337.69 614 T (g) 360.07 614 T (ener) 365.95 614 T (ator) 387.1 614 T 0 F (that) 410.81 614 T (emits) 432.52 614 T (v) 462.23 614 T (arious) 467.93 614 T (types) 500.96 614 T (of) 530 614 T (random) 72 600 T (output) 111.62 600 T (streams.) 145.25 600 T (These) 187.87 600 T (random) 219.49 600 T (streams) 259.11 600 T (are) 298.73 600 T (fed) 316.34 600 T (to) 334.62 600 T (a) 346.92 600 T (wide) 355.2 600 T (v) 381.49 600 T (ariety) 387.19 600 T (of) 417.47 600 T (UNIX) 430.43 600 T (utilities.) 463.38 600 T (W) 505.35 600 T (e) 515.72 600 T (use) 524 600 T (a) 72 586 T (conserv) 81.3 586 T (ati) 118.32 586 T (v) 130.02 586 T (e) 135.84 586 T (and) 145.13 586 T (crude) 166.43 586 T (measure) 197.05 586 T (of) 241 586 T (reliability:) 254.97 586 T (a) 308.94 586 T (program) 318.24 586 T (is) 362.86 586 T (considered) 374.83 586 T (unreliable) 430.79 586 T (if) 482.74 586 T (it) 494.04 586 T (crashes) 504.68 586 T (with) 72 572 T (a) 97.2 572 T (core) 106.39 572 T (dump) 130.91 572 T (or) 162.1 572 T (hangs) 175.96 572 T (\050loops) 207.82 572 T (inde\336nitely\051.) 241.69 572 T (While) 307.22 572 T (this) 340.41 572 T (type) 361.61 572 T (of) 386.14 572 T (testing) 400 572 T (is) 435.87 572 T (ef) 447.73 572 T (fecti) 456.76 572 T (v) 477.78 572 T (e) 483.6 572 T (in) 492.79 572 T (\336nding) 505.99 572 T (real) 72 558 T (b) 94.07 558 T (ugs) 99.83 558 T (in) 120.58 558 T (real) 134 558 T (programs,) 156.07 558 T (we) 208.48 558 T (are) 226.56 558 T (not) 245.29 558 T (proposing) 264.71 558 T (it) 316.8 558 T (as) 327.55 558 T (a) 341.63 558 T (replacement) 351.05 558 T (for) 413.77 558 T (systematic) 431.85 558 T (and) 486.6 558 T (formal) 508.01 558 T (testing. T) 72 544 T (o quote from the 1990 study:) 116.38 544 T 0 9 Q (There is a rich body of research on program testing and verification. Our approach is not a substitute for formal) 95.98 527.8 T (verification) 95.98 516.8 T (or) 139.71 516.8 T (testing) 149.45 516.8 T (procedures,) 175.69 516.8 T (but) 219.67 516.8 T (rather) 233.41 516.8 T (an) 256.64 516.8 T (inexpensive) 267.38 516.8 T (mechanism) 312.61 516.8 T (to) 355.85 516.8 T (identify) 365.1 516.8 T (bugs) 395.34 516.8 T (and) 414.58 516.8 T (increase) 429.82 516.8 T (overall) 461.54 516.8 T (system) 488.78 516.8 T (reliability.) 95.98 505.8 T (We) 135.35 505.8 T (are) 149.96 505.8 T (using) 163.07 505.8 T (a) 184.69 505.8 T (coarse) 190.8 505.8 T (notion) 215.91 505.8 T (of) 241.03 505.8 T (correctness) 250.65 505.8 T (in) 293.25 505.8 T (our) 302.37 505.8 T (study.) 316.49 505.8 T (A) 340.36 505.8 T (program) 348.98 505.8 T (is) 381.59 505.8 T (detected) 389.71 505.8 T (as) 421.82 505.8 T (faulty) 431.44 505.8 T (only) 454.55 505.8 T (if) 472.67 505.8 T (it) 480.29 505.8 T (crashes) 487.42 505.8 T (or hangs \050loops indefinitely\051. Our goal is to complement, not replace, existing test procedures.) 95.98 494.8 T 0 12 Q (Our ne) 90 477.6 T (w study has four parts:) 122.69 477.6 T (1.) 72 458.6 T (T) 90 458.6 T (est) 96.49 458.6 T (o) 114.43 458.6 T (v) 120.25 458.6 T (er) 126.07 458.6 T (80) 139.99 458.6 T (utility) 156.59 458.6 T (programs) 189.88 458.6 T (on) 239.8 458.6 T (nine) 256.4 458.6 T (dif) 281.67 458.6 T (ferent) 294.7 458.6 T (UNIX) 327.29 458.6 T (platforms,) 361.88 458.6 T (including) 415.48 458.6 T (three) 465.41 458.6 T (platforms) 494 458.6 T (tested) 90 444.6 T (in) 120.82 444.6 T (the) 132.98 444.6 T (1990) 150.46 444.6 T (study) 177.28 444.6 T (.) 202.51 444.6 T (Se) 208.33 444.6 T (v) 220.03 444.6 T (en) 225.85 444.6 T (of) 240 444.6 T (these) 252.82 444.6 T (platforms) 280.3 444.6 T (come) 329.11 444.6 T (from) 357.93 444.6 T (commercial) 384.08 444.6 T (v) 443.55 444.6 T (endors.) 449.37 444.6 T (These) 487.19 444.6 T (tests) 518.66 444.6 T (are) 90 430.6 T (the) 108.84 430.6 T (same) 127.7 430.6 T (type) 156.55 430.6 T (as) 181.41 430.6 T (we) 195.6 430.6 T (conducted) 213.78 430.6 T (in) 267.3 430.6 T (1990,) 280.82 430.6 T (including) 312.02 430.6 T (the) 361.55 430.6 T (use) 380.4 430.6 T (of) 400.59 430.6 T (the) 414.78 430.6 T (same) 433.64 430.6 T (random) 462.49 430.6 T (streams) 503.34 430.6 T (used) 90 416.6 T (in) 116.32 416.6 T (the) 129.98 416.6 T (1990) 148.96 416.6 T (study) 177.28 416.6 T 1 F (and) 207.61 416.6 T 0 F (streams) 229.93 416.6 T (ne) 270.91 416.6 T (wly) 281.94 416.6 T (generated) 304.26 416.6 T (for) 355.23 416.6 T (the) 373.54 416.6 T (current) 392.52 416.6 T (study) 430.83 416.6 T (.) 456.05 416.6 T (As) 463.38 416.6 T (in) 481.03 416.6 T (1990,) 494.69 416.6 T (we) 526.01 416.6 T (identi\336ed and cate) 90 402.6 T (gorized the b) 177.8 402.6 T (ugs that caused the f) 240.22 402.6 T (ailures.) 338.08 402.6 T (2.) 72 383.6 T (T) 90 383.6 T (est netw) 96.49 383.6 T (ork services by feeding them random input streams from a fuzz-based client.) 136.03 383.6 T (3.) 72 364.6 T (T) 90 364.6 T (est X-windo) 96.49 364.6 T (w applications and serv) 155.18 364.6 T (ers by feeding them random input streams.) 267.98 364.6 T (4.) 72 345.6 T (Additional) 90 345.6 T (rob) 144.9 345.6 T (ustness) 160.65 345.6 T (tests) 198.89 345.6 T (of) 223.79 345.6 T (UNIX) 237.35 345.6 T (utility) 270.9 345.6 T (programs) 303.14 345.6 T (to) 352.03 345.6 T (see) 364.92 345.6 T (if) 383.81 345.6 T (the) 394.71 345.6 T (y) 409.19 345.6 T (check) 418.76 345.6 T (the) 450.3 345.6 T (return) 468.53 345.6 T (v) 500.75 345.6 T (alue) 506.45 345.6 T (of) 530 345.6 T (system) 90 331.6 T (calls.) 127.96 331.6 T (Speci\336cally) 157.59 331.6 T (,) 213.47 331.6 T (we) 221.1 331.6 T (tested) 239.72 331.6 T (calls) 272.34 331.6 T (to) 298.96 331.6 T (the) 312.93 331.6 T (memory) 332.22 331.6 T (allocation) 376.84 331.6 T (C) 428.8 331.6 T (library) 441.43 331.6 T (routines) 478.05 331.6 T (\050) 521.34 331.6 T (the) 525.34 331.6 T (malloc\050\051 f) 90 317.6 T (amily\051, simulating the una) 137.53 317.6 T (v) 263.29 317.6 T (ailability of additional virtual memory) 268.99 317.6 T (.) 452.21 317.6 T (The) 90 301.6 T (goal) 111.97 301.6 T (of) 135.94 301.6 T (these) 149.24 301.6 T (studies) 177.21 301.6 T (w) 213.85 301.6 T (as) 222.39 301.6 T (to) 235.7 301.6 T (\336nd) 248.34 301.6 T (as) 270.32 301.6 T (man) 283.62 301.6 T (y) 304.11 301.6 T (b) 313.41 301.6 T (ugs) 319.17 301.6 T (as) 339.15 301.6 T (possible) 352.45 301.6 T (using) 395.09 301.6 T (simple,) 424.4 301.6 T (automated) 462.71 301.6 T (tech-) 516.01 301.6 T (niques.) 72 287.6 T (These) 110.19 287.6 T (techniques) 142.7 287.6 T (are) 197.88 287.6 T (intended) 216.39 287.6 T (to) 261.57 287.6 T (e) 274.76 287.6 T (xpose) 279.91 287.6 T (errors) 311.76 287.6 T (in) 343.6 287.6 T (common) 356.8 287.6 T (programming) 402.65 287.6 T (practices.) 471.84 287.6 T (The) 521.34 287.6 T (major results of this study are:) 72 273.6 T 4 F (o) 72 254.6 T 0 F (In) 90 254.6 T (the) 103.53 254.6 T (last) 121.73 254.6 T (\336) 141.93 254.6 T (v) 148.3 254.6 T (e) 154.12 254.6 T (years,) 162.98 254.6 T (the) 194.83 254.6 T (pre) 213.03 254.6 T (viously-tested) 228.05 254.6 T (v) 298.92 254.6 T (ersions) 304.74 254.6 T (of) 342.27 254.6 T (UNIX) 355.8 254.6 T (made) 389.32 254.6 T (noticeable) 418.84 254.6 T (impro) 471.7 254.6 T (v) 500.18 254.6 T (ements) 506 254.6 T (in the reliability of their utilities. But . . .) 90 240.6 T (. . . the f) 90 218.4 T (ailure rate of these systems is still distressingly high) 129.54 218.4 T 0 9.6 Q (1) 379.54 223.2 T 0 12 Q (.) 384.34 218.4 T 4 F (o) 72 199.4 T 0 F (Ev) 90 199.4 T (en) 103.15 199.4 T (w) 117.29 199.4 T (orse) 125.84 199.4 T (is) 148.64 199.4 T (that) 159.46 199.4 T (man) 180.27 199.4 T (y) 200.76 199.4 T (of) 209.57 199.4 T (the) 222.38 199.4 T (same) 239.86 199.4 T (b) 267.33 199.4 T (ugs) 273.09 199.4 T (that) 292.58 199.4 T (we) 313.39 199.4 T (reported) 330.19 199.4 T (in) 372.99 199.4 T (1990) 385.14 199.4 T (are) 411.95 199.4 T (still) 429.42 199.4 T (present) 450.25 199.4 T (in) 487.72 199.4 T (the) 499.87 199.4 T (code) 517.34 199.4 T (releases of 1995.) 90 185.4 T 4 F (o) 72 166.4 T 0 F (The) 90 166.4 T (f) 112.93 166.4 T (ailure) 116.81 166.4 T (rate) 148.4 166.4 T (of) 170.66 166.4 T (utilities) 184.92 166.4 T (on) 225.2 166.4 T (the) 241.47 166.4 T (commercial) 260.41 166.4 T (v) 321.33 166.4 T (ersions) 327.15 166.4 T (of) 365.41 166.4 T (UNIX) 379.68 166.4 T (that) 413.94 166.4 T (we) 436.21 166.4 T (tested) 454.47 166.4 T (\050from) 486.73 166.4 T (Sun,) 518.33 166.4 T (IBM, SGI, DEC, and NEXT\051 ranged from 15-43%.) 90 152.4 T 4 F (o) 72 133.4 T 0 F (The) 90 133.4 T (f) 112.38 133.4 T (ailure) 116.26 133.4 T (rate) 147.3 133.4 T (of) 169.01 133.4 T (the) 182.72 133.4 T (utilities) 201.11 133.4 T (on) 240.84 133.4 T (the) 256.56 133.4 T (freely-distrib) 274.94 133.4 T (uted) 337.36 133.4 T (Linux) 361.74 133.4 T (v) 394.13 133.4 T (ersion) 399.95 133.4 T (of) 433 133.4 T (UNIX) 446.71 133.4 T (w) 480.42 133.4 T (as) 488.96 133.4 T (second-) 502.68 133.4 T (lo) 90 119.4 T (west, at 9%.) 99.04 119.4 T 72 84 540 99 C 0 0 0 1 0 0 0 1 K 81 97 225 97 2 L 0.5 H 2 Z 0 X N -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (1.) 90 77.33 T (In this paper) 100 77.33 T (, \322f) 149.59 77.33 T (ailure\323 means a crashing with core dump or hanging \050looping inde\336nitely\051.) 162.26 77.33 T FMENDPAGE %%EndPage: "2" 2 %%Page: "3" 3 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 3) 513.06 749.33 T 1 F ( October 1995) 277.11 36 T 4 12 Q (o) 72 712 T 0 F (The f) 90 712 T (ailure rate of the public GNU utilities w) 115.54 712 T (as the lo) 307.06 712 T (west in our study) 346.75 712 T (, at only 6%.) 428.3 712 T 4 F (o) 72 693 T 0 F (W) 90 693 T (e could not crash netw) 100.37 693 T (ork services on an) 208.22 693 T (y of the v) 295.02 693 T (ersions of UNIX that we tested.) 340.5 693 T 4 F (o) 72 674 T 0 F (W) 90 674 T (ell) 100.37 674 T (more) 115.64 674 T (than) 143.58 674 T (half) 167.52 674 T (of) 189.46 674 T (the) 202.73 674 T (X-W) 220.67 674 T (indo) 244.18 674 T (w) 265.22 674 T (applications) 277.16 674 T (that) 338.43 674 T (we) 359.71 674 T (tested) 376.98 674 T (crash) 408.25 674 T (on) 436.85 674 T (random) 452.12 674 T (input) 492.06 674 T (data) 520.01 674 T (streams.) 90 660 T (More) 133.38 660 T (signi\336cant) 163.1 660 T (is) 216.82 660 T (that) 228.55 660 T (more) 250.27 660 T (than) 278.65 660 T (25%) 303.04 660 T (of) 328.75 660 T (the) 342.47 660 T (applications) 360.86 660 T (crash) 422.58 660 T (gi) 451.62 660 T (v) 460.65 660 T (en) 466.47 660 T (random,) 481.52 660 T (b) 524.9 660 T (ut) 530.66 660 T (le) 90 646 T (g) 98.48 646 T (al X-e) 104.42 646 T (v) 133.78 646 T (ent streams.) 139.6 646 T 4 F (o) 72 627 T 0 F (W) 90 627 T (e) 100.37 627 T (could) 109.11 627 T (not) 139.19 627 T (crash) 157.95 627 T (the) 186.68 627 T (X) 204.76 627 T (serv) 216.84 627 T (er) 236.65 627 T (on) 249.4 627 T (the) 264.81 627 T (v) 282.89 627 T (ersions) 288.71 627 T (of) 326.12 627 T (UNIX) 339.54 627 T (that) 372.94 627 T (we) 394.36 627 T (tested) 411.77 627 T (\050by) 443.18 627 T (sending) 462.59 627 T (random) 503.34 627 T (data streams to the serv) 90 613 T (er\051.) 202.46 613 T (Section) 90 597 T (2) 129 597 T (describes) 137.74 597 T (the) 185.13 597 T (basic) 202.53 597 T (tests) 229.93 597 T (that) 254 597 T (we) 274.74 597 T (performed) 291.47 597 T (on) 344.18 597 T (UNIX) 358.92 597 T (utilities) 391.65 597 T (and) 430.4 597 T (the) 450.46 597 T (results) 467.86 597 T (of) 501.93 597 T (those) 514.67 597 T (tests.) 72 583 T (W) 100.72 583 T (e) 111.09 583 T (analyze) 120.79 583 T (and) 161.82 583 T (cate) 183.53 583 T (gorize) 202.67 583 T (the) 237.04 583 T (causes) 256.09 583 T (of) 291.79 583 T (each) 306.17 583 T (f) 332.53 583 T (ailure) 336.41 583 T (and) 368.12 583 T (compare) 389.83 583 T (them) 435.52 583 T (with) 463.9 583 T (the) 489.62 583 T (results) 508.67 583 T (from) 72 569 T (three) 98.59 569 T (systems) 125.84 569 T (that) 167.1 569 T (also) 188.37 569 T (were) 210.96 569 T (tested) 237.54 569 T (in) 268.8 569 T (1990.) 281.39 569 T (Section) 311.66 569 T (3) 350.66 569 T (reports) 359.92 569 T (on) 396.5 569 T (our) 411.77 569 T (testing) 431.02 569 T (of) 466.29 569 T (netw) 479.55 569 T (ork) 502.75 569 T (ser-) 522.01 569 T (vices) 72 555 T (and) 100.15 555 T (Section) 120.97 555 T (4) 159.97 555 T (reports) 169.46 555 T (on) 206.27 555 T (testing) 221.76 555 T (of) 257.26 555 T (X-windo) 270.74 555 T (w) 313.1 555 T (applications) 325.26 555 T (and) 386.74 555 T (serv) 407.56 555 T (ers.) 427.37 555 T (Memory) 447.85 555 T (allocation) 492.67 555 T (library-call tests are described in Section) 72 541 T (5. Section) 270.62 541 T (6 presents concluding comments.) 321.62 541 T FMENDPAGE %%EndPage: "3" 3 %%Page: "4" 4 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 4) 513.06 749.33 T 1 F ( October 1995) 277.11 36 T 2 16 Q (2 B) 72 709.33 T (ASIC TESTS) 94.19 709.33 T 0 12 Q (This) 72 686 T (section) 96.16 686 T (reports) 132.98 686 T (on) 169.12 686 T (the) 183.95 686 T (results) 201.43 686 T (of) 235.59 686 T (repeating) 248.41 686 T (our) 295.88 686 T (basic) 314.7 686 T (1990) 342.19 686 T (study) 369.01 686 T (.) 394.23 686 T (That) 400.06 686 T (study) 424.88 686 T (tested) 453.7 686 T (the) 484.52 686 T (reliabil-) 502.01 686 T (ity) 72 672 T (of) 87.86 672 T (utilities) 101.04 672 T (by) 140.23 672 T (feeding) 155.41 672 T (se) 194.59 672 T (v) 204.28 672 T (eral) 210.1 672 T (v) 231.27 672 T (ariations) 236.97 672 T (of) 281.49 672 T (random) 294.67 672 T (input) 334.51 672 T (streams.) 362.36 672 T (In) 405.21 672 T (the) 418.39 672 T (1990) 436.24 672 T (study) 463.42 672 T (,) 488.64 672 T (we) 494.83 672 T (tested) 512 672 T (a) 72 658 T (lar) 80.49 658 T (ge) 92.93 658 T (number) 107.43 658 T (of) 147.25 658 T (UNIX) 160.41 658 T (utilities) 193.56 658 T (on) 232.73 658 T (six) 247.9 658 T (v) 265.06 658 T (endors\325) 270.88 658 T (platforms) 310.04 658 T (\050plus) 359.19 658 T (a) 386.36 658 T (limited) 394.85 658 T (amount) 432.02 658 T (of) 471.18 658 T (testing) 484.34 658 T (on) 519.51 658 T (a) 534.67 658 T (se) 72 644 T (v) 81.7 644 T (enth) 87.52 644 T (platform\051.) 112.5 644 T (Our) 165.15 644 T (current) 188.14 644 T (study) 226.45 644 T (included) 256.78 644 T (the) 302.43 644 T (same) 321.42 644 T (type) 350.4 644 T (of) 375.39 644 T (tests) 389.71 644 T (on) 415.38 644 T (nine) 431.7 644 T (UNIX) 456.69 644 T (platforms,) 491 644 T (including) 72 630 T (se) 121.21 630 T (v) 130.9 630 T (en) 136.72 630 T (commercial) 151.92 630 T (systems.) 212.45 630 T (Three) 257.32 630 T (of) 289.18 630 T (the) 303.05 630 T (systems) 321.58 630 T (from) 363.46 630 T (the) 390.66 630 T (1990) 409.19 630 T (study) 437.07 630 T (are) 466.94 630 T (included) 485.46 630 T (in) 530.66 630 T (our current \0501995\051 study) 72 616 T (.) 188.2 616 T (These) 90 600 T (tests) 122.62 600 T (were) 147.92 600 T (performed) 175.19 600 T (on) 229.14 600 T (machines) 245.1 600 T (a) 294.39 600 T (v) 299.47 600 T (ailable) 305.17 600 T (on) 341.13 600 T (the) 357.09 600 T (Uni) 375.71 600 T (v) 393.42 600 T (ersity) 399.23 600 T (of) 429.86 600 T (W) 443.82 600 T (isconsin) 454.67 600 T (-) 494 600 T (Madison) 498 600 T (campus) 72 586 T (in) 112.9 586 T (the) 126.48 586 T (F) 145.39 586 T (all) 151.88 586 T (of) 168.12 586 T (1994) 182.36 586 T (and) 210.6 586 T (machines) 232.18 586 T (belonging) 281.74 586 T (to) 333.98 586 T (members) 347.56 586 T (of) 395.8 586 T (the) 410.04 586 T (testing) 428.94 586 T (team.) 465.19 586 T (The) 495.76 586 T (tests) 518.66 586 T (were repeated and v) 72 572 T (eri\336ed in the W) 168.11 572 T (inter of 1994-95.) 242.62 572 T (Section) 90 556 T (2.1) 129 556 T (describes) 148.98 556 T (the) 198.61 556 T (tools) 218.25 556 T (used) 246.57 556 T (for) 273.54 556 T (the) 292.51 556 T (basic) 312.15 556 T (tests) 341.79 556 T (and) 368.11 556 T (Section) 390.41 556 T (2.2) 429.41 556 T (describes) 449.39 556 T (the) 499.02 556 T (tests) 518.66 556 T (themselv) 72 542 T (es) 115.15 542 T (and) 129.43 542 T (the) 151.04 542 T (UNIX) 169.98 542 T (platforms) 204.24 542 T (on) 254.52 542 T (which) 270.8 542 T (the) 304.41 542 T (y) 318.89 542 T (were) 329.17 542 T (run.) 356.77 542 T (The) 380.04 542 T (platforms) 402.98 542 T (include) 453.26 542 T (1990-v) 492.86 542 T (er-) 526.68 542 T (sions) 72 528 T (of) 100.14 528 T (three) 113.6 528 T (systems) 141.06 528 T (and) 182.53 528 T (the) 203.33 528 T (1995-v) 221.46 528 T (ersions) 255.28 528 T (of) 292.74 528 T (all) 306.2 528 T (nine) 321.67 528 T (systems.) 345.8 528 T (Section) 390.28 528 T (2.3) 429.28 528 T (presents) 447.74 528 T (the) 490.54 528 T (results) 508.67 528 T (of our testing and describes the causes of the f) 72 514 T (ailures detected by our tests.) 293.5 514 T 2 14 Q (2.1 Basic Fuzz T) 72 484.67 T (ools) 168.71 484.67 T 0 12 Q (The) 72 464 T 1 F (fuzz) 93.62 464 T 0 F (program) 115.26 464 T (is) 158.88 464 T (basically) 169.84 464 T (a) 215.46 464 T (generator) 223.75 464 T (of) 272.03 464 T (random) 284.99 464 T (characters.) 324.61 464 T (It) 379.21 464 T (produces) 389.5 464 T (a) 435.79 464 T (continuous) 444.08 464 T (string) 499.7 464 T (of) 530 464 T (characters) 72 450 T (on) 124.7 450 T (its) 140.77 450 T (standard) 156.18 450 T (output) 200.9 450 T (\336le.) 235.64 450 T (W) 258.05 450 T (e) 268.42 450 T (can) 277.81 450 T (perform) 298.54 450 T (dif) 341.26 450 T (ferent) 354.29 450 T (types) 386.34 450 T (of) 415.74 450 T (tests) 429.8 450 T (depending) 455.21 450 T (on) 509.27 450 T (the) 525.34 450 T (options) 72 436 T (gi) 111.52 436 T (v) 120.56 436 T (en) 126.38 436 T (to) 141.89 436 T (fuzz.) 155.41 436 T (Fuzz) 183.24 436 T (is) 210.75 436 T (capable) 222.94 436 T (of) 263.77 436 T (producing) 277.95 436 T (both) 330.79 436 T (printable) 356.31 436 T (and) 403.15 436 T (control) 424.67 436 T (characters,) 462.85 436 T (only) 518.66 436 T (printable) 72 422 T (characters,) 118.33 422 T (or) 173.64 422 T (either) 187.31 422 T (of) 218.31 422 T (these) 231.98 422 T (groups) 260.31 422 T (along) 296.65 422 T (with) 326.99 422 T (the) 352 422 T (NUL) 370.34 422 T (\050zero\051) 398.67 422 T (character) 430.99 422 T (.) 474.3 422 T (W) 480.97 422 T (e) 491.34 422 T (can) 500.34 422 T (also) 520.67 422 T (specify) 72 408 T (a) 110.02 408 T (delay) 118.71 408 T (between) 148.07 408 T (each) 191.42 408 T (character) 216.77 408 T (.) 260.08 408 T (This) 266.45 408 T (option) 291.15 408 T (can) 325.18 408 T (account) 345.21 408 T (for) 385.89 408 T (the) 403.25 408 T (delay) 421.28 408 T (in) 450.64 408 T (characters) 463.34 408 T (pass-) 515.34 408 T (ing) 72 394 T (through) 91.05 394 T (a) 132.09 394 T (pipe) 141.13 394 T (and) 165.51 394 T (help) 186.55 394 T (the) 210.92 394 T (user) 229.3 394 T (locate) 253 394 T (the) 285.37 394 T (characters) 303.74 394 T (that) 356.09 394 T (caused) 377.8 394 T (a) 414.17 394 T (utility) 423.2 394 T (to) 455.6 394 T (crash.) 468.64 394 T (Another) 500.68 394 T (option) 72 380 T (allo) 106.45 380 T (ws) 124.15 380 T (us) 141.27 380 T (to) 155.72 380 T (specify) 168.83 380 T (the) 207.27 380 T (seed) 225.72 380 T (for) 250.82 380 T (the) 268.6 380 T (random) 287.04 380 T (number) 327.48 380 T (generator) 367.92 380 T (,) 412.76 380 T (to) 419.54 380 T (pro) 432.66 380 T (vide) 448.47 380 T (for) 472.92 380 T (repeatable) 490.69 380 T (tests.) 72 366 T (Fuzz) 90 350 T (can) 116.86 350 T (record) 137.04 350 T (its) 171.22 350 T (output) 186.09 350 T (stream) 220.29 350 T (in) 255.82 350 T (a) 268.68 350 T (\336le,) 277.54 350 T (in) 299.41 350 T (addition) 312.27 350 T (to) 355.14 350 T (printing) 368.01 350 T (to) 409.54 350 T (its) 422.4 350 T (standard) 437.27 350 T (output.) 481.46 350 T (This) 518.66 350 T (\336le) 72 336 T (can) 90.53 336 T (be) 110.39 336 T (e) 124.91 336 T (xamined) 130.06 336 T (later) 174.58 336 T (.) 195.25 336 T (There) 201.44 336 T (are) 232.62 336 T (options) 250.47 336 T (to) 289.01 336 T (randomly) 301.54 336 T (insert) 350.74 336 T (NEWLINE) 380.6 336 T (characters) 438.44 336 T (in) 490.27 336 T (the) 502.81 336 T (out-) 520.67 336 T (put stream, and to limit the length of the output stream.) 72 322 T (The follo) 90 306 T (wing is an e) 134.03 306 T (xample of fuzz being used to test "eqn", the equation processor) 191.51 306 T (.) 493.58 306 T 3 10 Q (fuzz 100000 -o outfile | eqn) 108 288.33 T 0 12 Q (The) 72 270 T (output) 93.74 270 T (stream) 127.5 270 T (will) 162.57 270 T (be) 184.33 270 T (at) 198.74 270 T (most) 210.48 270 T (100,000) 236.91 270 T (characters) 278.99 270 T (in) 330.71 270 T (length) 343.13 270 T (and) 376.21 270 T (the) 396.62 270 T (stream) 414.36 270 T (will) 449.44 270 T (be) 471.19 270 T (recorded) 485.61 270 T (in) 530.66 270 T (\336le \322out\336le\323.) 72 256 T (The) 90 240 T (fuzz) 111.57 240 T (tools) 135.13 240 T (also) 161.39 240 T (include) 183.63 240 T (a) 221.87 240 T (set) 230.11 240 T (of) 246.35 240 T (shell) 259.26 240 T (scripts) 284.84 240 T (that) 319.08 240 T (automate) 339.99 240 T (much) 386.9 240 T (of) 416.47 240 T (the) 429.38 240 T (testing) 446.95 240 T (process.) 481.87 240 T (If) 523.77 240 T (a) 534.67 240 T (crash) 72 226 T (is) 100.47 226 T (detected) 111.62 226 T (\050by) 154.76 226 T (the) 173.9 226 T (presence) 191.72 226 T (of) 236.84 226 T (a) 249.99 226 T (\322core\323) 258.47 226 T (\336le\051,) 292.92 226 T (a) 318.4 226 T (\322crash\323) 326.88 226 T (is) 366.01 226 T (recorded) 377.16 226 T (in) 422.29 226 T (a) 434.77 226 T (log) 443.25 226 T (\336le.) 461.74 226 T (If) 483.22 226 T (the) 494.36 226 T (test) 512.18 226 T (is) 532 226 T (interrupted) 72 212 T (by) 127.6 212 T (the) 142.55 212 T (person) 160.16 212 T (performing) 195.1 212 T (the) 252.04 212 T (tests,) 269.65 212 T (a) 296.93 212 T (\322hang\323) 305.2 212 T (is) 342.14 212 T (recorded) 353.09 212 T (in) 398.01 212 T (the) 410.29 212 T (log) 427.9 212 T (\336le.) 446.19 212 T (Each) 467.47 212 T (crash) 494.4 212 T (and) 522.67 212 T (hang) 72 198 T (w) 98.74 198 T (as) 107.29 198 T (subsequently) 120.7 198 T (e) 186.78 198 T (xamined) 191.93 198 T (to) 236.67 198 T (ensure) 249.42 198 T (that) 284.15 198 T (the) 305.57 198 T (y) 320.05 198 T (were) 329.47 198 T (v) 356.2 198 T (alid.) 361.9 198 T (F) 386.32 198 T (or) 392.81 198 T (e) 406.22 198 T (xample,) 411.37 198 T (core) 453.11 198 T (\336les) 477.18 198 T (can) 500.6 198 T (also) 520.67 198 T (be) 72 184 T (generated) 87.33 184 T (when) 137.97 184 T (the) 167.96 184 T (program) 186.62 184 T (recei) 231.27 184 T (v) 254.29 184 T (ed) 260.11 184 T (a) 275.43 184 T (SIGABR) 284.76 184 T (T) 328.05 184 T (signal) 339.38 184 T (\050typically) 372.04 184 T (generated) 422.03 184 T (by) 472.68 184 T (calling) 488.67 184 T (the) 525.34 184 T (abort\050\051 library routine\051; such cases were not considered crashes.) 72 170 T 2 14 Q (2.2 Basic T) 72 140.67 T (ests) 136.44 140.67 T 0 12 Q (W) 72 120 T (e) 82.37 120 T (tested) 91.96 120 T (UNIX) 124.23 120 T (utilities) 158.48 120 T (on) 198.76 120 T (nine) 215.03 120 T (operating) 239.96 120 T (system) 289.55 120 T (platforms.) 327.15 120 T (Se) 380.42 120 T (v) 392.12 120 T (en) 397.94 120 T (of) 413.53 120 T (these) 427.8 120 T (systems) 456.73 120 T (\050SunOS,) 499 120 T (HP-UX,) 72 106 T (AIX,) 114.87 106 T (Solaris,) 142.41 106 T (IRIX,) 181.96 106 T (Ultrix,) 212.83 106 T (and) 247.71 106 T (NEXTSTEP\051) 268.25 106 T (were) 335.46 106 T (the) 361.98 106 T (most) 379.86 106 T (recent) 406.41 106 T (commercial) 438.94 106 T (softw) 498.8 106 T (are) 525.35 106 T (distrib) 72 92 T (utions) 102.43 92 T (that) 135.53 92 T (we) 157.28 92 T (had) 175.03 92 T (a) 196.11 92 T (v) 201.2 92 T (ailable) 206.9 92 T (to) 242.65 92 T (us) 255.74 92 T (at) 270.16 92 T (the) 282.58 92 T (time) 301 92 T (of) 326.09 92 T (the) 339.84 92 T (tests.) 358.26 92 T (Three) 386.36 92 T (of) 418.09 92 T (these) 431.85 92 T (commercial) 460.26 92 T (sys-) 520.67 92 T (tems) 72 78 T (\050SunOS,) 99.18 78 T (HP-UX,) 144.7 78 T (and) 188.88 78 T (AIX\051) 210.72 78 T (were) 240.55 78 T (also) 268.38 78 T (tested) 292.23 78 T (in) 324.74 78 T (the) 338.59 78 T (1990) 357.77 78 T (study.) 386.28 78 T (Results) 419.8 78 T (from) 459.65 78 T (this) 487.5 78 T (earlier) 509.35 78 T FMENDPAGE %%EndPage: "4" 4 %%Page: "5" 5 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 5) 513.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 12 Q (study) 72 414 T ([2]) 101.49 414 T (are) 118.96 414 T (included) 137.1 414 T (for) 181.91 414 T (comparison.) 199.38 414 T (Two) 261.86 414 T (of) 287.33 414 T (the) 300.81 414 T (systems) 318.96 414 T (tested) 360.45 414 T (are) 391.92 414 T (free) 410.06 414 T (software) 432.19 414 T (distributions.) 476.99 414 T (The) 72 400 T (GNU) 94.08 400 T (tools) 123.5 400 T (come) 150.26 400 T (from) 179.67 400 T (the) 206.42 400 T (Free) 224.51 400 T (Software) 249.26 400 T (Foundation) 296 400 T (and) 354.09 400 T (are) 374.84 400 T (written) 392.92 400 T (by) 430.33 400 T (a) 445.76 400 T (variety) 454.51 400 T (of) 491.25 400 T (authors) 504.67 400 T (world-wide.) 72 386 T (Linux) 133.32 386 T (is) 165 386 T (a) 176.01 386 T (freely) 184.34 386 T (distributed) 215.33 386 T (version) 269.67 386 T (of) 308 386 T (the) 321 386 T (UNIX) 338.67 386 T (operating) 371.66 386 T (system) 419.99 386 T (originally) 456.33 386 T (written) 506 386 T (by) 72 372 T (Linus) 89.29 372 T (Torvalds;) 121.91 372 T (the) 173.19 372 T (system) 193.15 372 T (has) 231.77 372 T (since) 253.05 372 T (been) 283 372 T (extensively) 310.94 372 T (changed) 370.89 372 T (and) 416.16 372 T (extended) 438.78 372 T (by) 487.39 372 T (authors) 504.67 372 T (world-wide.) 72 358 T (The systems tested are listed in T) 133.32 358 T (able) 292.34 358 T (1.) 315.34 358 T (Each) 90 342 T (utility) 116.84 342 T (w) 148.38 342 T (as) 156.92 342 T (tested) 169.78 342 T (with) 200.63 342 T (se) 224.82 342 T (v) 234.52 342 T (eral) 240.34 342 T (random) 261.18 342 T (input) 300.7 342 T (streams.) 328.22 342 T (These) 370.74 342 T (streams) 402.25 342 T (were) 441.77 342 T (v) 467.94 342 T (aried) 473.64 342 T (by) 500.48 342 T (com-) 515.34 342 T (binations) 72 328 T (of) 118.72 328 T (the) 131.44 328 T (parameters) 148.82 328 T (described) 204.19 328 T (in) 252.89 328 T (Section) 264.95 328 T (2.1.) 303.95 328 T (W) 324.67 328 T (e) 335.04 328 T (tested) 343.09 328 T (the) 373.8 328 T (utilities) 391.19 328 T (with) 429.92 328 T (streams) 453.98 328 T (generated) 493.36 328 T (by the same random seeds as were used in the 1990 study and by se) 72 314 T (v) 396.31 314 T (eral ne) 402.13 314 T (w random seeds.) 434.15 314 T 2 14 Q (2.3 Basic T) 72 284.67 T (est Results) 136.44 284.67 T 0 12 Q (In) 72 264 T (our) 85.84 264 T (current) 105.68 264 T (study) 143.51 264 T (,) 168.74 264 T (we) 175.58 264 T (tested) 193.42 264 T (more) 225.26 264 T (than) 253.77 264 T (80) 278.28 264 T (UNIX) 294.12 264 T (utilities.) 327.96 264 T (Each) 370.81 264 T (utility) 398.65 264 T (is) 431.17 264 T (a) 443.02 264 T (v) 448.11 264 T (ailable) 453.81 264 T (on) 489.65 264 T (at) 505.49 264 T (least) 518 264 T (three) 72 250 T (\050and) 98.7 250 T (typically) 122.74 250 T (more\051) 167.45 250 T (of) 198.82 250 T (the) 211.53 250 T (systems) 228.91 250 T (that) 269.63 250 T (we) 290.34 250 T (tested.) 307.05 250 T (The) 340.76 250 T (list) 362.13 250 T (includes) 379.52 250 T (commonly) 422.23 250 T (used) 476.28 250 T (utilities,) 500.99 250 T (such) 72 236 T (as) 97.74 236 T (shells,) 111.47 236 T (C) 145.55 236 T (compilers,) 157.3 236 T (and) 211.37 236 T (document) 232.44 236 T (formatters.) 283.51 236 T (The) 339.57 236 T (list) 361.97 236 T (also) 380.39 236 T (includes) 403.46 236 T (more) 447.2 236 T (obscure) 475.6 236 T (utili-) 516.66 236 T (ties,) 72 222 T (such) 94.68 222 T (as) 119.68 222 T (\322units\323,) 132.69 222 T (the) 172.69 222 T (unit) 190.37 222 T (con) 212.05 222 T (v) 228.9 222 T (ersion) 234.72 222 T (utility) 267.05 222 T (.) 294.95 222 T (Similar) 300.96 222 T (utilities) 339.31 222 T (are) 378.34 222 T (grouped) 396 222 T (under) 438.33 222 T (the) 468.67 222 T (same) 486.34 222 T (name) 514.01 222 T (in) 72 208 T (T) 84.12 208 T (able) 90.49 208 T (3) 113.48 208 T (and) 122.27 208 T (T) 142.38 208 T (able) 148.75 208 T (4.) 171.74 208 T (When) 183.53 208 T (the) 214.97 208 T (name) 232.42 208 T (of) 261.19 208 T (a) 273.97 208 T (utility) 282.08 208 T (is) 313.55 208 T (dif) 324.34 208 T (ferent) 337.37 208 T (from) 368.14 208 T (the) 394.25 208 T (name) 411.7 208 T (gi) 440.47 208 T (v) 449.51 208 T (en) 455.33 208 T (in) 469.44 208 T (these) 481.56 208 T (tables,) 509 208 T (the speci\336c name is listed in T) 72 194 T (able) 217.03 194 T (2.) 240.02 194 T (Section) 90 178 T (2.3.1) 129 178 T (summarizes) 156.32 178 T (the) 216.97 178 T (results) 234.96 178 T (of) 269.62 178 T (the) 282.94 178 T (basic) 300.93 178 T (testing.) 328.92 178 T (Section) 367.24 178 T (2.3.2) 406.24 178 T (e) 433.57 178 T (xamines) 438.72 178 T (the) 482.04 178 T (cause) 500.03 178 T (of) 530 178 T (the) 72 164 T (f) 90.13 164 T (ailures,) 94 164 T (and) 132.46 164 T (Section) 153.25 164 T (2.3.3) 192.25 164 T (compares) 219.72 164 T (our) 269.17 164 T (current) 288.63 164 T (results) 326.08 164 T (to) 360.87 164 T (those) 373.67 164 T (of) 402.47 164 T (the) 415.93 164 T (1990) 434.06 164 T (study) 461.53 164 T (.) 486.75 164 T (The) 493.21 164 T (basic) 515.34 164 T (tests) 72 150 T (do) 96.3 150 T 1 F (not) 111.26 150 T 0 F (include) 129.56 150 T (X) 167.85 150 T (windo) 179.47 150 T (w-based) 209.17 150 T (utilities.) 252.12 150 T (T) 294.09 150 T (ests) 300.58 150 T (on) 321.54 150 T (X) 336.5 150 T (windo) 348.13 150 T (w-based) 377.83 150 T (application) 420.77 150 T (programs) 477.06 150 T (are) 525.35 150 T (described in Section) 72 136 T (4.) 172.32 136 T 2 14 Q (2.3.1 Quantitati) 72 106.67 T (v) 165.59 106.67 T (e Results) 172.45 106.67 T 0 12 Q (The) 72 86 T (results) 93.53 86 T (of) 127.74 86 T (our) 140.6 86 T (tests) 159.47 86 T (are) 183.68 86 T (gi) 201.2 86 T (v) 210.24 86 T (en) 216.06 86 T (in) 230.26 86 T (T) 242.47 86 T (able) 248.84 86 T (3.) 271.83 86 T (T) 283.7 86 T (w) 290.08 86 T (o) 298.62 86 T (immediate) 307.49 86 T (observ) 361.03 86 T (ations) 392.72 86 T (are) 424.26 86 T (possible) 441.78 86 T (from) 483.99 86 T (e) 510.19 86 T (xam-) 515.34 86 T (Identifying) 78.84 704 T (Letter) 91.17 690 T (Study) 146.2 697 T (V) 228.37 697 T (endor) 235.7 697 T (Architecture) 331.71 697 T (Operating System) 433.54 697 T 0 9 Q (s) 103.75 668 T (1990) 151.2 668 T (Sun Microsystems) 186.7 658.5 T (Sun 4/110) 316.7 668 T (SunOS 3.2 and 4.0) 418.7 668 T (S) 103 649 T (1995) 151.2 649 T (SP) 316.7 649 T (ARCstation 10/40) 325.88 649 T (SunOS 4.1.3) 418.7 649 T (h) 103.25 630 T (1990) 151.2 630 T (He) 186.7 620.5 T (wlett P) 196.97 620.5 T (ackard) 222.09 620.5 T (HP 9000/330) 316.7 630 T (4.3 BSD + NFS + System V) 418.7 630 T (H) 102.25 611 T (1995) 151.2 611 T (HP 9000/705) 316.7 611 T (HP-UX 9.01) 418.7 611 T (a) 103.5 592 T (1990) 151.2 592 T (IBM) 186.7 582.5 T (PS/2-80) 316.7 592 T (AIX 1.1) 418.7 592 T (A) 102.25 573 T (1995) 151.2 573 T (RS6000) 316.7 573 T (AIX 3.2) 418.7 573 T (O) 102.25 554 T (1995) 151.2 554 T (Sun Microsystems) 186.7 554 T (SP) 316.7 554 T (ARCstation 10/40) 325.88 554 T (Solaris 2.3) 418.7 554 T (I) 104 535 T (1995) 151.2 535 T (Silicon Graphics) 186.7 535 T (Indy) 316.7 535 T (IRIX 5.1.1.2) 418.7 535 T (U) 102.25 516 T (1995) 151.2 516 T (DEC) 186.7 516 T (DECstation 3100) 316.7 516 T (Ultrix v4.3a re) 418.7 516 T (v 146) 471.21 516 T (N) 102.25 497 T (1995) 151.2 497 T (NEXT) 186.7 497 T (Colorstation \050MC68040\051) 316.7 497 T (NEXTSTEP 3.2) 418.7 497 T (G) 102.25 478 T (1995) 151.2 478 T (GNU, Free Softw) 186.7 478 T (are F) 250.35 478 T (oundation) 268.46 478 T (SunOS 4.1.3 & NEXTSTEP 3.2) 418.7 478 T (L) 102.75 459 T (1995) 151.2 459 T (Linux) 186.7 459 T (Cyrix i486) 316.7 459 T (Slackw) 418.7 459 T (are 2.1.0) 445.11 459 T 2 12 Q (T) 227.27 438 T (able 1: List of Systems T) 234.17 438 T (ested) 358.73 438 T 71.3 719.75 71.3 452.25 2 L V 0.5 H 0 Z N 139.7 720.25 139.7 451.75 2 L V N 180.7 720.25 180.7 451.75 2 L V N 310.7 720.25 310.7 451.75 2 L V N 412.7 720.25 412.7 451.75 2 L V N 540.7 719.75 540.7 452.25 2 L V N 71.05 720 540.95 720 2 L V N 71.55 681.25 540.45 681.25 2 L V N 71.55 678.75 540.45 678.75 2 L V N 71.05 661 180.95 661 2 L V N 310.45 661 540.95 661 2 L V N 71.05 642 540.95 642 2 L V N 71.05 623 180.95 623 2 L V N 310.45 623 540.95 623 2 L V N 71.05 604 540.95 604 2 L V N 71.05 585 180.95 585 2 L V N 310.45 585 540.95 585 2 L V N 71.05 566 540.95 566 2 L V N 71.05 547 540.95 547 2 L V N 71.05 528 540.95 528 2 L V N 71.05 509 540.95 509 2 L V N 71.05 490 540.95 490 2 L V N 71.05 471 540.95 471 2 L V N 71.05 452 540.95 452 2 L V N FMENDPAGE %%EndPage: "5" 5 %%Page: "6" 6 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 6) 513.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 12 Q (ining) 72 294 T (this) 100.83 294 T (table.) 122.33 294 T (First,) 152.82 294 T (there) 181.98 294 T (is) 210.13 294 T (a) 222.29 294 T (noticeable) 231.78 294 T (impro) 285.26 294 T (v) 313.74 294 T (ement) 319.56 294 T (in) 353.05 294 T (reliability) 366.54 294 T (from) 417.37 294 T (the) 444.86 294 T (1990) 463.68 294 T (study:) 491.84 294 T (the) 525.34 294 T (f) 72 280 T (ailure) 75.88 280 T (rate) 107.09 280 T (for) 128.98 280 T (SunOS) 146.86 280 T (went) 184.76 280 T (from) 211.99 280 T (29%) 239.21 280 T (to) 265.1 280 T (23%,) 278.33 280 T (HP-UX) 307.22 280 T (went) 347.78 280 T (from) 375 280 T (33%) 402.22 280 T (to) 428.11 280 T (18%,) 441.34 280 T (and) 470.23 280 T (AIX) 491.45 280 T (went) 516.67 280 T (from) 72 266 T (24%) 99.48 266 T (to) 125.63 266 T (20%.) 139.12 266 T (Second,) 168.27 266 T (the) 210.75 266 T (1995) 229.57 266 T (f) 257.72 266 T (ailure) 261.6 266 T (rate) 293.08 266 T (is) 315.22 266 T (still) 327.38 266 T (distressingly) 349.54 266 T (high,) 414.37 266 T (especially) 442.86 266 T (gi) 495 266 T (v) 504.03 266 T (en) 509.85 266 T (the) 525.34 266 T (ease of the fuzz testing and the public a) 72 252 T (v) 261.05 252 T (ailability of the fuzz tools.) 266.75 252 T (It) 90 236 T (is) 100.85 236 T (also) 112.36 236 T (interesting) 135.21 236 T (to) 189.39 236 T (compare) 202.24 236 T (results) 247.07 236 T (of) 281.91 236 T (testing) 295.42 236 T (the) 330.94 236 T (commercial) 349.12 236 T (systems) 409.28 236 T (to) 450.8 236 T (the) 463.65 236 T (results) 481.83 236 T (from) 516.67 236 T (testing) 72 222 T (\322free) 108.37 222 T (w) 132.04 222 T (are\323) 140.59 222 T (GNU) 164.93 222 T (and) 195.28 222 T (Linux.) 216.98 222 T (The) 253.01 222 T (se) 276.03 222 T (v) 285.73 222 T (en) 291.55 222 T (commercial) 307.24 222 T (systems) 368.25 222 T (in) 410.62 222 T (the) 424.32 222 T (1995) 443.34 222 T (study) 471.71 222 T (ha) 502.07 222 T (v) 513.16 222 T (e) 518.98 222 T (an) 528.67 222 T (a) 72 208 T (v) 77.09 208 T (erage) 82.91 208 T (f) 111.71 208 T (ailure) 115.59 208 T (rate) 145.74 208 T (of) 166.55 208 T (23%,) 179.37 208 T (while) 207.19 208 T (Linux) 236.68 208 T (has) 268.17 208 T (a) 286.99 208 T (f) 295.14 208 T (ailure) 299.02 208 T (rate) 329.17 208 T (of) 349.98 208 T (9%) 362.8 208 T (and) 381.62 208 T (the) 401.77 208 T (GNU) 419.26 208 T (utilities) 448.08 208 T (ha) 486.91 208 T (v) 498 208 T (e) 503.82 208 T (a) 511.98 208 T (f) 520.13 208 T (ail-) 524 208 T (ure) 72 194 T (rate) 90.75 194 T (of) 112.15 194 T (only) 125.57 194 T (6%.) 150.33 194 T (It) 172.74 194 T (is) 183.5 194 T (reasonable) 194.92 194 T (to) 249.65 194 T (ask) 262.41 194 T (wh) 281.83 194 T (y) 296.43 194 T (a) 305.85 194 T (globally) 314.6 194 T (scattered) 357.36 194 T (group) 403.42 194 T (of) 434.84 194 T (programmers,) 448.26 194 T (with) 518.66 194 T (no) 72 180 T (formal) 86.73 180 T (testing) 121.45 180 T (support) 156.19 180 T (or) 194.92 180 T (softw) 207.64 180 T (are) 234.19 180 T (engineering) 251.57 180 T (standards) 310.95 180 T (can) 359 180 T (produce) 378.39 180 T (code) 419.77 180 T (that) 445.16 180 T (is) 465.89 180 T (more) 476.62 180 T (reliable) 504.01 180 T (\050at) 72 166 T (least,) 88.1 166 T (by) 116.54 166 T (our) 131.98 166 T (measure\051) 151.41 166 T (than) 198.83 166 T (commercially) 222.94 166 T (produced) 292.36 166 T (code.) 340.46 166 T (Ev) 369.55 166 T (en) 382.7 166 T (if) 397.47 166 T (you) 408.24 166 T (consider) 429.68 166 T (only) 473.78 166 T (the) 498.56 166 T (utili-) 516.66 166 T (ties) 72 152 T (that) 91.64 152 T (were) 112.62 152 T (a) 138.91 152 T (v) 143.99 152 T (ailable) 149.69 152 T (from) 184.66 152 T (GNU) 210.96 152 T (or) 239.93 152 T (Linux,) 252.9 152 T (the) 287.54 152 T (f) 305.18 152 T (ailure) 309.05 152 T (rates) 339.35 152 T (for) 364.98 152 T (these) 381.95 152 T (tw) 409.58 152 T (o) 421.46 152 T (systems) 430.43 152 T (are) 471.41 152 T (better) 489.04 152 T (than) 519.34 152 T (the other systems.) 72 138 T (One) 90 122 T (e) 112.99 122 T (xplanation) 118.14 122 T (may) 171.8 122 T (be) 195.46 122 T (that) 209.78 122 T (the) 230.78 122 T (scale) 248.44 122 T (of) 275.42 122 T (softw) 288.41 122 T (are) 314.96 122 T (that) 332.61 122 T (must) 353.6 122 T (be) 379.94 122 T (supported) 394.26 122 T (by) 444.59 122 T (a) 459.58 122 T (lar) 467.91 122 T (ge) 480.35 122 T (computer) 494.68 122 T (compan) 72 108 T (y) 109.81 108 T (is) 118.52 108 T (more) 129.24 108 T (e) 156.61 108 T (xtensi) 161.76 108 T (v) 190.12 108 T (e) 195.94 108 T (than) 203.98 108 T (that) 227.36 108 T (of) 248.07 108 T (the) 260.77 108 T (free) 278.15 108 T (softw) 299.51 108 T (are) 326.05 108 T (groups.) 343.41 108 T (Companies) 381.79 108 T (ha) 438.5 108 T (v) 449.58 108 T (e) 455.4 108 T (man) 463.44 108 T (y) 483.93 108 T (more) 492.64 108 T (cus-) 520.01 108 T (tomers) 72 94 T (and) 107.68 94 T (a) 128.02 94 T (commitment) 136.36 94 T (to) 200.05 94 T (support) 212.4 94 T (softw) 251.42 94 T (are) 277.96 94 T (on) 295.63 94 T (man) 310.64 94 T (y) 331.13 94 T (platforms,) 340.14 94 T (con\336gurations,) 392.15 94 T (and) 466.83 94 T (v) 487.17 94 T (ersions) 492.99 94 T (of) 530 94 T (an operating system \050especially on older v) 72 80 T (ersions of hardw) 274.45 80 T (are and system softw) 354.31 80 T (are\051.) 455.17 80 T 2 9 Q (Generic Name\050s\051) 129.64 706 T (Irix) 233.05 706 T (Ultrix) 286.4 706 T (NEXT) 343 706 T (GNU) 403.1 706 T (Linux) 459.19 706 T 0 F (as) 118.5 685 T (g) 332.7 685 T (as) 337.15 685 T (g) 390.3 685 T (as) 394.76 685 T (a) 118.5 666 T (wk) 122.36 666 T (g) 390.3 666 T (a) 394.76 666 T (wk) 398.62 666 T (bib/bibte) 118.5 647 T (x) 150.37 647 T (cc) 118.5 628 T (gcc) 332.7 628 T (gcc) 390.3 628 T (ccom) 118.5 609 T (cfe) 217.5 609 T (cfe) 275.1 609 T (cc1obj) 332.7 609 T (cc1) 390.3 609 T (compress) 118.5 590 T (gzip) 390.3 590 T (dbx) 118.5 571 T (gdb) 332.7 571 T (gdb) 390.3 571 T (gdb) 447.9 571 T (ditrof) 118.5 552 T (f/trof) 138.27 552 T (f) 156.54 552 T (ptrof) 332.7 552 T (f) 349.97 552 T (eqn/deqn) 118.5 533 T (neqn) 275.1 533 T (neqn) 332.7 533 T (geqn) 390.3 533 T (e) 118.5 514 T (x/vi) 122.36 514 T (le) 118.5 495 T (x) 124.86 495 T (\337e) 390.3 495 T (x) 399.17 495 T (\337e) 447.9 495 T (x) 456.77 495 T (more) 118.5 476 T (less) 390.3 476 T (plot) 118.5 457 T (psplot) 332.7 457 T (sh) 118.5 438 T (bash) 390.3 438 T (soelim) 118.5 419 T (gsoelim) 390.3 419 T (tbl/dtbl) 118.5 400 T (gtbl) 390.3 400 T (yacc) 118.5 381 T (bison) 390.3 381 T 2 12 Q (T) 241.88 360 T (able 2: Similar Utilities.) 248.78 360 T ( The utilities listed on the same line of the table ha) 75.88 346 T (v) 331.25 346 T (e similar function, b) 337.13 346 T (ut v) 439.57 346 T (ary by name in) 459.11 346 T (the systems listed. They ar) 76.34 332 T (e not meant to be identical, b) 211.12 332 T (ut rather ar) 358.54 332 T (e listed f) 418.97 332 T (or comparison) 461.33 332 T (pur) 281.56 318 T (poses.) 300.11 318 T 112.5 719.75 112.5 374.25 2 L V 0.5 H 0 Z N 211.5 720.25 211.5 373.75 2 L V N 269.1 720.25 269.1 373.75 2 L V N 326.7 720.25 326.7 373.75 2 L V N 384.3 720.25 384.3 373.75 2 L V N 441.9 720.25 441.9 373.75 2 L V N 499.5 719.75 499.5 374.25 2 L V N 112.25 720 499.75 720 2 L V N 112.75 698.25 499.25 698.25 2 L V N 112.75 695.75 499.25 695.75 2 L V N 112.25 374 499.75 374 2 L V N FMENDPAGE %%EndPage: "6" 6 %%Page: "7" 7 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 7) 513.06 749.33 T 1 F ( October 1995) 277.11 36 T 2 12 Q (Utility) 75.8 692.5 T 0 F (SunOS) 139.2 704 T (HP-UX) 195.47 704 T (AIX) 260.74 704 T (Solaris) 306.53 704 T (Irix) 353.54 704 T (Ultrix) 384.37 704 T (NEXT) 425.2 704 T (GNU) 469.2 704 T (Linux) 507.37 704 T 0 9 Q (90) 137.3 680 T (95) 166.1 680 T (90) 194.9 680 T (95) 223.7 680 T (90) 252.5 680 T (95) 281.3 680 T (95) 318.7 680 T (95) 357.7 680 T (95) 394.2 680 T (95) 436.7 680 T (95) 477.7 680 T (95) 517.2 680 T (adb) 75.8 659 T 4 F (l) 138.24 659 T (l) 167.04 659 T (l) 195.84 659 T (lm) 220.71 659 T (5) 253.57 659 T (5) 282.37 659 T (lm) 315.71 659 T (5) 358.77 659 T (5) 395.27 659 T (5) 437.77 659 T (5) 478.77 659 T (5) 518.27 659 T 0 F (as) 75.8 640 T 4 F (l) 253.44 640 T (l) 437.64 640 T 0 F (a) 75.8 621 T (wk) 79.66 621 T (bc) 75.8 602 T 4 F (l) 437.64 602 T (5) 518.27 602 T 0 F (bib) 75.8 583 T 4 F (l) 167.04 583 T (5) 195.97 583 T (5) 253.57 583 T (5) 282.37 583 T (5) 319.77 583 T (5) 358.77 583 T (5) 478.77 583 T 0 F (calendar) 75.8 564 T 4 F (5) 478.77 564 T (5) 518.27 564 T 0 F (cat) 75.8 545 T (cb) 75.8 526 T 4 F (l) 195.84 526 T (m) 253.07 526 T (m) 281.87 526 T (l) 395.14 526 T (l) 437.64 526 T (5) 478.77 526 T (5) 518.27 526 T 0 F (cc) 75.8 507 T 4 F (l) 437.64 507 T 0 F (ccom) 75.8 488 T 4 F (5) 253.57 488 T (5) 282.37 488 T (m) 319.27 488 T (l) 437.64 488 T (5) 518.27 488 T 0 F (check) 75.8 469 T (eq) 96.7 469 T 4 F (5) 224.77 469 T (l) 282.24 469 T (5) 358.77 469 T (5) 478.77 469 T (5) 518.27 469 T 0 F (checknr) 75.8 450 T 4 F (5) 253.57 450 T (5) 358.77 450 T (5) 478.77 450 T (5) 518.27 450 T 0 F (col) 75.8 431 T 4 F (l) 138.24 431 T (m) 166.67 431 T (l) 195.84 431 T (l) 253.44 431 T (l) 282.24 431 T (l) 319.64 431 T (l) 358.64 431 T (m) 394.77 431 T (l) 437.64 431 T (5) 478.77 431 T 0 F (colcrt) 75.8 412 T 4 F (5) 224.77 412 T (5) 253.57 412 T (l) 282.24 412 T (5) 319.77 412 T (5) 358.77 412 T (5) 478.77 412 T 0 F (colrm) 75.8 393 T 4 F (5) 224.77 393 T (5) 253.57 393 T (5) 319.77 393 T (5) 358.77 393 T (5) 478.77 393 T 0 F (comm) 75.8 374 T (compress) 75.8 355 T 4 F (5) 253.57 355 T 0 F (cpp) 75.8 336 T (csh) 75.8 317 T 4 F (m) 137.87 317 T (m) 195.47 317 T (m) 253.07 317 T (5) 478.77 317 T 0 F (ctags) 75.8 298 T 4 F (5) 138.37 298 T (5) 195.97 298 T (5) 253.57 298 T (5) 282.37 298 T (l) 319.64 298 T (l) 437.64 298 T (m) 517.77 298 T 0 F (ctree) 75.8 279 T 4 F (5) 138.37 279 T (5) 167.17 279 T (5) 195.97 279 T (5) 224.77 279 T (5) 253.57 279 T (5) 319.77 279 T (5) 358.77 279 T (5) 478.77 279 T (5) 518.27 279 T 0 F (dbx) 75.8 260 T 4 F (l) 138.24 260 T (5) 195.97 260 T (5) 437.77 260 T (l) 518.14 260 T 0 F (dc) 75.8 241 T 4 F (l) 358.64 241 T (l) 437.64 241 T (l) 478.64 241 T (5) 518.27 241 T 0 F (derof) 75.8 222 T (f) 94.57 222 T 4 F (l) 138.24 222 T (l) 167.04 222 T (l) 195.84 222 T (l) 253.44 222 T (l) 319.64 222 T (l) 395.14 222 T (l) 437.64 222 T (5) 478.77 222 T (5) 518.27 222 T 0 F (diction) 75.8 203 T 4 F (5) 138.37 203 T (l) 167.04 203 T (l) 195.84 203 T (l) 224.64 203 T (5) 253.57 203 T (5) 319.77 203 T (5) 358.77 203 T (l) 395.14 203 T (l) 437.64 203 T (5) 478.77 203 T (5) 518.27 203 T 0 F (dif) 75.8 184 T (f) 85.57 184 T (ditrof) 75.8 165 T (f) 95.57 165 T 4 F (l) 138.24 165 T (l) 167.04 165 T (5) 195.97 165 T (l) 224.64 165 T (l) 282.24 165 T (l) 319.64 165 T (l) 395.14 165 T (l) 437.64 165 T 0 F (eqn) 75.8 146 T 4 F (l) 138.24 146 T (l) 167.04 146 T (l) 195.84 146 T (l) 224.64 146 T (m) 281.87 146 T (l) 358.64 146 T (l) 395.14 146 T (l) 437.64 146 T (5) 518.27 146 T 0 F (e) 75.8 127 T (x) 79.66 127 T 4 F (l) 195.84 127 T (5) 478.77 127 T 2 12 Q (T) 158.99 106 T (able 3: List of Utilities T) 165.89 106 T (ested and Results of Those T) 289.12 106 T (ests) 434.35 106 T 4 F (l) 200.55 92 T 2 F ( = crashed,) 210.04 92 T 4 F (m) 268.88 92 T 2 F ( = hung,) 279.35 92 T 4 F (5) 324.21 92 T 2 F ( = not a) 333.35 92 T (v) 371.56 92 T (ailable) 377.44 92 T 69.8 719.75 69.8 120.25 2 L V 0.5 H 0 Z N 127.4 720.25 127.4 119.75 2 L V N 156.2 671.25 156.2 119.75 2 L 4 X V N 185 720.25 185 119.75 2 L 0 X V N 213.8 671.25 213.8 119.75 2 L 4 X V N 242.6 720.25 242.6 119.75 2 L 0 X V N 271.4 671.25 271.4 119.75 2 L 4 X V N 300.2 720.25 300.2 119.75 2 L 0 X V N 346.2 720.25 346.2 119.75 2 L V N 378.2 720.25 378.2 119.75 2 L V N 419.2 720.25 419.2 119.75 2 L V N 463.2 720.25 463.2 119.75 2 L V N 501.2 720.25 501.2 119.75 2 L V N 542.2 719.75 542.2 120.25 2 L V N 69.55 720 542.45 720 2 L V N 69.55 671 542.45 671 2 L V N 69.55 120 542.45 120 2 L V N FMENDPAGE %%EndPage: "7" 7 %%Page: "8" 8 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 8) 513.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 9 Q (e) 75.8 659 T (xpand) 79.66 659 T 4 F (5) 253.57 659 T (5) 358.77 659 T 0 F (f77) 75.8 640 T 4 F (5) 195.97 640 T (5) 253.57 640 T (5) 358.77 640 T (5) 437.77 640 T (5) 478.77 640 T (5) 518.27 640 T 0 F (fmt) 75.8 621 T 4 F (l) 437.64 621 T (5) 478.77 621 T 0 F (fold) 75.8 602 T 4 F (5) 253.57 602 T 0 F (ftp) 75.8 583 T 4 F (l) 138.24 583 T (l) 167.04 583 T (l) 195.84 583 T (l) 253.44 583 T (l) 282.24 583 T (l) 319.64 583 T (l) 358.64 583 T (l) 395.14 583 T (l) 437.64 583 T (5) 478.77 583 T 0 F (graph) 75.8 564 T 4 F (5) 224.77 564 T (5) 253.57 564 T (5) 358.77 564 T (5) 437.77 564 T (5) 518.27 564 T 0 F (grep) 75.8 545 T (head) 75.8 526 T 4 F (5) 253.57 526 T 0 F (indent) 75.8 507 T 4 F (lm) 134.31 507 T (m) 166.67 507 T (l) 195.84 507 T (m) 224.27 507 T (5) 253.57 507 T (l) 282.24 507 T (m) 319.27 507 T (l) 437.64 507 T (m) 478.27 507 T (l) 518.14 507 T 0 F (join) 75.8 488 T 4 F (l) 138.24 488 T (l) 319.64 488 T (l) 395.14 488 T (l) 437.64 488 T 0 F (late) 75.8 469 T (x) 88.66 469 T 4 F (5) 195.97 469 T (5) 253.57 469 T (5) 282.37 469 T (5) 319.77 469 T (5) 358.77 469 T (5) 478.77 469 T 0 F (le) 75.8 450 T (x) 82.16 450 T 4 F (l) 138.24 450 T (l) 167.04 450 T (l) 195.84 450 T (l) 224.64 450 T (l) 253.44 450 T (l) 282.24 450 T (l) 395.14 450 T (l) 437.64 450 T (lm) 474.71 450 T (l) 518.14 450 T 0 F (lint) 75.8 431 T 4 F (5) 437.77 431 T (5) 478.77 431 T (5) 518.27 431 T 0 F (look) 75.8 412 T 4 F (m) 137.87 412 T (l) 195.84 412 T (m) 224.27 412 T (5) 253.57 412 T (m) 319.27 412 T (5) 358.77 412 T (l) 395.14 412 T (l) 437.64 412 T (5) 478.77 412 T 0 F (m4) 75.8 393 T 4 F (l) 224.64 393 T (l) 395.14 393 T (l) 437.64 393 T 0 F (mail) 75.8 374 T 4 F (5) 478.77 374 T 0 F (Mail) 75.8 355 T 4 F (5) 138.37 355 T (5) 195.97 355 T (5) 253.57 355 T (5) 358.77 355 T (l) 437.64 355 T (5) 478.77 355 T (5) 518.27 355 T 0 F (mak) 75.8 336 T (e) 91.21 336 T 4 F (l) 195.84 336 T 0 F (more) 75.8 317 T 4 F (5) 253.57 317 T 0 F (nm) 75.8 298 T (nrof) 75.8 279 T (f) 90.57 279 T 4 F (l) 167.04 279 T (l) 224.64 279 T (lm) 278.31 279 T (l) 319.64 279 T (l) 358.64 279 T (l) 395.14 279 T (l) 437.64 279 T 0 F (pc) 75.8 260 T 4 F (5) 253.57 260 T (5) 358.77 260 T (5) 437.77 260 T (5) 478.77 260 T (5) 518.27 260 T 0 F (plot) 75.8 241 T 4 F (m) 137.87 241 T (5) 167.17 241 T (l) 195.84 241 T (5) 224.77 241 T (5) 253.57 241 T (5) 282.37 241 T (lm) 315.71 241 T (5) 358.77 241 T (m) 437.27 241 T (5) 478.77 241 T (5) 518.27 241 T 0 F (pr) 75.8 222 T (prolog) 75.8 203 T 4 F (lm) 134.31 203 T (lm) 191.91 203 T (5) 224.77 203 T (5) 253.57 203 T (5) 282.37 203 T (5) 319.77 203 T (5) 358.77 203 T (5) 395.27 203 T (5) 437.77 203 T (5) 478.77 203 T (5) 518.27 203 T 0 F (psdit) 75.8 184 T 4 F (5) 253.57 184 T (5) 319.77 184 T (5) 478.77 184 T (5) 518.27 184 T 0 F (ptx) 75.8 165 T 4 F (l) 138.24 165 T (l) 167.04 165 T (l) 195.84 165 T (l) 224.64 165 T (l) 282.24 165 T (5) 319.77 165 T (5) 518.27 165 T 0 F (refer) 75.8 146 T 4 F (l) 138.24 146 T (l) 195.84 146 T (m) 224.27 146 T (5) 253.57 146 T (lm) 278.31 146 T (5) 358.77 146 T (l) 395.14 146 T (l) 437.64 146 T 0 F (re) 75.8 127 T (v) 82.57 127 T 4 F (5) 253.57 127 T (5) 319.77 127 T (5) 358.77 127 T (5) 478.77 127 T 2 12 Q (Utility) 75.8 692.5 T 0 F (SunOS) 139.2 704 T (HP-UX) 195.47 704 T (AIX) 260.74 704 T (Solaris) 306.53 704 T (Irix) 353.54 704 T (Ultrix) 384.37 704 T (NEXT) 425.2 704 T (GNU) 469.2 704 T (Linux) 507.37 704 T 0 9 Q (90) 137.3 680 T (95) 166.1 680 T (90) 194.9 680 T (95) 223.7 680 T (90) 252.5 680 T (95) 281.3 680 T (95) 318.7 680 T (95) 357.7 680 T (95) 394.2 680 T (95) 436.7 680 T (95) 477.7 680 T (95) 517.2 680 T 2 12 Q (T) 158.99 106 T (able 3: List of Utilities T) 165.89 106 T (ested and Results of Those T) 289.12 106 T (ests) 434.35 106 T 4 F (l) 200.55 92 T 2 F ( = crashed,) 210.04 92 T 4 F (m) 268.88 92 T 2 F ( = hung,) 279.35 92 T 4 F (5) 324.21 92 T 2 F ( = not a) 333.35 92 T (v) 371.56 92 T (ailable) 377.44 92 T 69.8 719.75 69.8 120.25 2 L V 0.5 H 0 Z N 127.4 720.25 127.4 119.75 2 L V N 156.2 671.25 156.2 119.75 2 L 4 X V N 185 720.25 185 119.75 2 L 0 X V N 213.8 671.25 213.8 119.75 2 L 4 X V N 242.6 720.25 242.6 119.75 2 L 0 X V N 271.4 671.25 271.4 119.75 2 L 4 X V N 300.2 720.25 300.2 119.75 2 L 0 X V N 346.2 720.25 346.2 119.75 2 L V N 378.2 720.25 378.2 119.75 2 L V N 419.2 720.25 419.2 119.75 2 L V N 463.2 720.25 463.2 119.75 2 L V N 501.2 720.25 501.2 119.75 2 L V N 542.2 719.75 542.2 120.25 2 L V N 69.55 720 542.45 720 2 L V N 69.55 671 542.45 671 2 L V N 69.55 120 542.45 120 2 L V N FMENDPAGE %%EndPage: "8" 8 %%Page: "9" 9 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 9) 513.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 12 Q (The) 90 106 T (elitist) 113.13 106 T (e) 144.27 106 T (xplanation) 149.42 106 T (is) 204.55 106 T (that) 217.02 106 T (there) 239.49 106 T (is) 267.95 106 T (no) 280.42 106 T (substitute) 296.89 106 T (for) 347.36 106 T (e) 365.82 106 T (xcellent) 370.97 106 T (programmers.) 413.43 106 T (The) 484.88 106 T (people) 508.01 106 T (who) 72 92 T (write) 96.28 92 T (and) 124.55 92 T (support) 145.49 92 T (the) 185.1 92 T (GNU) 203.37 92 T (utilities) 232.98 92 T (are) 272.6 92 T (typically) 290.86 92 T (skilled) 336.47 92 T (at) 372.09 92 T (their) 384.36 92 T (profession) 409.97 92 T (and) 463.58 92 T (are) 484.51 92 T (in) 502.78 92 T (it) 515.72 92 T (for) 526.01 92 T (the) 72 78 T (fun) 89.53 78 T (and) 108.39 78 T (intellectual) 128.58 78 T (challenge) 184.78 78 T (\050that) 233.63 78 T (is) 258.49 78 T (not) 269.36 78 T (to) 287.56 78 T (say) 299.76 78 T (that) 318.62 78 T (such) 339.49 78 T (people) 364.35 78 T (do) 399.2 78 T (not) 414.07 78 T (e) 432.27 78 T (xist) 437.42 78 T (in) 457.62 78 T (corporate) 469.83 78 T (soft-) 518 78 T 0 9 Q (sed) 75.8 659 T (sh) 75.8 640 T (soelim) 75.8 621 T 4 F (5) 253.57 621 T (5) 518.27 621 T 0 F (sort) 75.8 602 T (spell) 75.8 583 T 4 F (l) 138.24 583 T (l) 167.04 583 T (l) 195.84 583 T (l) 253.44 583 T (l) 319.64 583 T (l) 395.14 583 T (l) 437.64 583 T (5) 478.77 583 T (5) 518.27 583 T 0 F (spline) 75.8 564 T 4 F (5) 224.77 564 T (5) 253.57 564 T (5) 358.77 564 T (l) 437.64 564 T (5) 518.27 564 T 0 F (split) 75.8 545 T (strings) 75.8 526 T 4 F (5) 253.57 526 T (l) 319.64 526 T 0 F (strip) 75.8 507 T (style) 75.8 488 T 4 F (5) 138.37 488 T (l) 167.04 488 T (l) 195.84 488 T (l) 224.64 488 T (5) 253.57 488 T (5) 319.77 488 T (5) 358.77 488 T (l) 437.64 488 T (5) 478.77 488 T (5) 518.27 488 T 0 F (sum) 75.8 469 T (tail) 75.8 450 T (tbl) 75.8 431 T (tee) 75.8 412 T (telnet) 75.8 393 T 4 F (l) 138.24 393 T (l) 167.04 393 T (l) 195.84 393 T (l) 253.44 393 T (l) 282.24 393 T (l) 358.64 393 T (l) 395.14 393 T (l) 437.64 393 T (5) 478.77 393 T 0 F (te) 75.8 374 T (x) 82.16 374 T 4 F (5) 195.97 374 T (5) 253.57 374 T (5) 282.37 374 T (5) 319.77 374 T (5) 358.77 374 T (5) 478.77 374 T 0 F (tr) 75.8 355 T (tsort) 75.8 336 T 4 F (l) 138.24 336 T (l) 195.84 336 T (l) 253.44 336 T (l) 437.64 336 T (5) 478.77 336 T 0 F (ul) 75.8 317 T 4 F (l) 138.24 317 T (l) 167.04 317 T (l) 195.84 317 T (l) 224.64 317 T (5) 253.57 317 T (l) 282.24 317 T (l) 319.64 317 T (l) 358.64 317 T (l) 395.14 317 T (l) 437.64 317 T (5) 478.77 317 T (l) 518.14 317 T 0 F (uniq) 75.8 298 T 4 F (l) 138.24 298 T (l) 167.04 298 T (l) 195.84 298 T (l) 253.44 298 T (l) 358.64 298 T (l) 395.14 298 T (lm) 433.71 298 T 0 F (units) 75.8 279 T 4 F (l) 138.24 279 T (l) 167.04 279 T (l) 195.84 279 T (l) 253.44 279 T (l) 282.24 279 T (l) 319.64 279 T (l) 358.64 279 T (l) 437.64 279 T (5) 478.77 279 T (5) 518.27 279 T 0 F (vgrind) 75.8 260 T 4 F (5) 195.97 260 T (5) 253.57 260 T (l) 437.64 260 T (5) 478.77 260 T (5) 518.27 260 T 0 F (wc) 75.8 241 T (yacc) 75.8 222 T (# tested) 75.8 203 T (77) 137.3 203 T (80) 166.1 203 T (72) 194.9 203 T (74) 223.7 203 T (49) 252.5 203 T (74) 281.3 203 T (70) 318.7 203 T (60) 357.7 203 T (80) 394.2 203 T (75) 436.7 203 T (47) 477.7 203 T (55) 517.2 203 T (#) 75.8 184 T (crash/hang) 82.41 184 T (22) 137.3 184 T (18) 166.1 184 T (24) 194.9 184 T (13) 223.7 184 T (12) 252.5 184 T (15) 281.3 184 T (16) 318.7 184 T (9) 359.95 184 T (17) 394.2 184 T (32) 436.7 184 T (3) 479.95 184 T (5) 519.45 184 T (%) 75.8 165 T (29%) 133.55 165 T (23%) 162.35 165 T (33%) 191.15 165 T (18%) 219.95 165 T (24%) 248.75 165 T (20%) 277.55 165 T (23%) 314.95 165 T (15%) 353.95 165 T (21%) 390.45 165 T (43%) 432.95 165 T (6%) 476.2 165 T (9%) 515.7 165 T 2 12 Q (Utility) 75.8 692.5 T 0 F (SunOS) 139.2 704 T (HP-UX) 195.47 704 T (AIX) 260.74 704 T (Solaris) 306.53 704 T (Irix) 353.54 704 T (Ultrix) 384.37 704 T (NEXT) 425.2 704 T (GNU) 469.2 704 T (Linux) 507.37 704 T 0 9 Q (90) 137.3 680 T (95) 166.1 680 T (90) 194.9 680 T (95) 223.7 680 T (90) 252.5 680 T (95) 281.3 680 T (95) 318.7 680 T (95) 357.7 680 T (95) 394.2 680 T (95) 436.7 680 T (95) 477.7 680 T (95) 517.2 680 T 2 12 Q (T) 158.99 144 T (able 3: List of Utilities T) 165.89 144 T (ested and Results of Those T) 289.12 144 T (ests) 434.35 144 T 4 F (l) 200.55 130 T 2 F ( = crashed,) 210.04 130 T 4 F (m) 268.88 130 T 2 F ( = hung,) 279.35 130 T 4 F (5) 324.21 130 T 2 F ( = not a) 333.35 130 T (v) 371.56 130 T (ailable) 377.44 130 T 69.8 719.75 69.8 158.25 2 L V 0.5 H 0 Z N 127.4 720.25 127.4 157.75 2 L V N 156.2 671.25 156.2 157.75 2 L 4 X V N 185 720.25 185 157.75 2 L 0 X V N 213.8 671.25 213.8 157.75 2 L 4 X V N 242.6 720.25 242.6 157.75 2 L 0 X V N 271.4 671.25 271.4 157.75 2 L 4 X V N 300.2 720.25 300.2 157.75 2 L 0 X V N 346.2 720.25 346.2 157.75 2 L V N 378.2 720.25 378.2 157.75 2 L V N 419.2 720.25 419.2 157.75 2 L V N 463.2 720.25 463.2 157.75 2 L V N 501.2 720.25 501.2 157.75 2 L V N 542.2 719.75 542.2 158.25 2 L V N 69.55 720 542.45 720 2 L V N 69.55 671 542.45 671 2 L V N 69.55 215 542.45 215 2 L V N 69.55 158 542.45 158 2 L V N FMENDPAGE %%EndPage: "9" 9 %%Page: "10" 10 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 10) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 12 Q (w) 72 712 T (are) 80.54 712 T (groups!\051.) 98.75 712 T (The) 145.97 712 T (users) 168.18 712 T (of) 196.4 712 T (the) 209.95 712 T (GNU) 228.17 712 T (utilities) 257.72 712 T (are,) 297.29 712 T (in) 318.5 712 T (man) 331.39 712 T (y) 351.88 712 T (cases,) 361.43 712 T (of) 393.31 712 T (a) 406.86 712 T (lik) 415.75 712 T (e) 428.3 712 T (mind;) 437.19 712 T (if) 468.75 712 T (a) 479.64 712 T (b) 488.53 712 T (ug) 494.29 712 T (e) 509.84 712 T (xists,) 514.99 712 T (the) 72 698 T (y) 86.48 698 T (will) 95.37 698 T (often) 116.93 698 T (\336nd) 144.47 698 T (and) 166.03 698 T (\336x) 186.24 698 T (it) 201.8 698 T (themselv) 211.36 698 T (es.) 254.51 698 T (Ha) 270.39 698 T (ving) 284.14 698 T (ubiquitous) 308.37 698 T (source) 361.93 698 T (code) 396.13 698 T (is) 421.67 698 T (certainly) 432.57 698 T (an) 477.44 698 T (adv) 491.65 698 T (antage) 508.68 698 T (in this situation.) 72 684 T (The) 90 668 T (free) 111.47 668 T (softw) 132.93 668 T (are) 159.48 668 T (also) 176.95 668 T (has) 199.09 668 T (a) 217.9 668 T (personal) 226.04 668 T (touch) 269.51 668 T (that) 298.99 668 T (impro) 319.8 668 T (v) 348.29 668 T (es) 354.11 668 T (communication) 366.92 668 T (between) 444.4 668 T (the) 487.19 668 T (authors) 504.67 668 T (and) 72 654 T (the) 92.47 654 T (users.) 110.28 654 T (Users) 141.08 654 T (ha) 171.55 654 T (v) 182.64 654 T (e) 188.46 654 T (an) 196.93 654 T (incenti) 211.4 654 T (v) 243.77 654 T (e) 249.59 654 T (for) 258.06 654 T (reporting) 275.2 654 T (b) 322.33 654 T (ugs.) 328.09 654 T (Usually) 350.9 654 T (the) 391.38 654 T (GNU) 409.19 654 T (utilities) 438.32 654 T (ha) 477.48 654 T (v) 488.57 654 T (e) 494.39 654 T (an) 502.86 654 T (indi-) 517.33 654 T (vidual\325) 72 640 T (s) 105.34 640 T (name) 113.49 640 T (associated) 142.96 640 T (with) 195.77 640 T (them.) 220.59 640 T (If) 251.07 640 T (you) 262.55 640 T (ha) 284.04 640 T (v) 295.12 640 T (e) 300.95 640 T (a) 309.76 640 T (b) 318.57 640 T (ug) 324.33 640 T (report,) 339.82 640 T (you) 374.95 640 T (send) 396.44 640 T (it) 421.92 640 T (to) 432.08 640 T (a) 444.9 640 T (person) 453.71 640 T (\050who) 489.19 640 T (typi-) 517.33 640 T (cally) 72 626 T (answers) 98.54 626 T (you) 140.4 626 T (and) 161.61 626 T (sho) 182.15 626 T (ws) 198.52 626 T (a) 215.06 626 T (personal) 223.6 626 T (interest) 267.47 626 T (in) 306.01 626 T (your) 318.55 626 T (report\051.) 343.76 626 T (Lar) 382.62 626 T (ge) 399.06 626 T (companies) 413.6 626 T (usually) 468.14 626 T (require) 506.02 626 T (you) 72 612 T (to) 96.06 612 T (submit) 111.46 612 T (a) 150.2 612 T (b) 161.59 612 T (ug) 167.35 612 T (report) 185.41 612 T (to) 220.13 612 T (an) 235.53 612 T (anon) 252.92 612 T (ymous) 276.07 612 T (address,) 314.14 612 T (something) 359.19 612 T (lik) 415.26 612 T (e) 427.81 612 T 3 F (OSbugs@BigCom-) 439.2 612 T (pany.com.) 72 598 T 0 F (Responses) 143.68 598 T (to) 197.21 598 T (such) 209.41 598 T (mail) 234.27 598 T (are) 258.48 598 T (slo) 275.99 598 T (w) 289.7 598 T (and) 301.23 598 T (the) 321.42 598 T (user) 338.95 598 T (may) 361.81 598 T (ne) 385.34 598 T (v) 396.37 598 T (er) 402.19 598 T (see) 414.38 598 T (or) 432.57 598 T (hear) 445.43 598 T (about) 468.95 598 T (the) 498.48 598 T (reso-) 516.01 598 T (lution) 72 584 T (of) 105.59 584 T (the) 121.17 584 T (b) 141.42 584 T (ug.) 147.18 584 T (The) 167.77 584 T (structure) 192.01 584 T (of) 239.58 584 T (the) 255.16 584 T (corporate) 275.41 584 T (softw) 326.31 584 T (are) 352.85 584 T (de) 373.09 584 T (v) 384.12 584 T (elopment,) 389.94 584 T (testing,) 443.19 584 T (and) 483.77 584 T (release) 506.69 584 T (process) 72 570 T (is) 110.87 570 T (such) 121.76 570 T (that) 146.64 570 T (it) 167.52 570 T (may) 177.07 570 T (be) 200.62 570 T (a) 214.83 570 T (year) 223.04 570 T (before) 246.58 570 T (a) 280.11 570 T (repair) 288.32 570 T (is) 319.19 570 T (made) 330.08 570 T (a) 358.95 570 T (v) 364.04 570 T (ailable.) 369.74 570 T (The) 407.61 570 T (long) 429.16 570 T (delays) 453.38 570 T (can) 486.92 570 T (also) 506.46 570 T (be) 528.67 570 T (discouraging) 72 556 T (to) 137.09 556 T (the) 149.51 556 T (programmer) 167.27 556 T (.) 225.93 556 T (By) 232.02 556 T (the) 249.12 556 T (time) 266.88 556 T (that) 291.31 556 T (a) 312.4 556 T (b) 320.82 556 T (ug-\336x) 326.58 556 T (is) 358.34 556 T (deplo) 369.44 556 T (yed,) 395.99 556 T (the) 419.41 556 T (programmer) 437.17 556 T (has) 499.57 556 T (long) 518.66 556 T (for) 72 542 T (gotten the problem; there is no grati\336cation in solving a particular person\325) 85.78 542 T (s problem.) 440.08 542 T (Distrib) 90 526 T (uting) 123.1 526 T (source) 150.65 526 T (code) 184.85 526 T (may) 210.39 526 T (also) 233.93 526 T (be) 256.14 526 T (a) 270.35 526 T (f) 278.56 526 T (actor) 282.44 526 T (in) 309.31 526 T (quality) 321.52 526 T (of) 357.74 526 T (the) 370.62 526 T (GNU) 388.16 526 T (and) 417.03 526 T (Linux) 437.24 526 T (systems.) 468.79 526 T (Users) 512.68 526 T (are) 72 512 T (more) 89.6 512 T (able) 117.2 512 T (and) 140.14 512 T (encouraged) 160.41 512 T (to) 218.66 512 T (be) 230.95 512 T (in) 245.22 512 T (v) 254.07 512 T (olv) 259.83 512 T (ed) 274.99 512 T (in) 289.26 512 T (identifying) 301.54 512 T (the) 357.16 512 T (cause) 374.77 512 T (of) 404.36 512 T (problems.) 417.3 512 T (Computer) 467.91 512 T (v) 518.86 512 T (en-) 524.68 512 T (dors may be under) 72 498 T (-estimating the v) 160.74 498 T (alue of widely distrib) 241.1 498 T (uting their source code.) 343.19 498 T (The) 90 482 T (lessons) 112.98 482 T (learned) 151.97 482 T (by) 191.6 482 T (traditional) 207.92 482 T (manuf) 261.57 482 T (acturing) 292.11 482 T (industries,) 335.75 482 T (such) 389.74 482 T (as) 416.05 482 T (steel) 430.37 482 T (and) 456.68 482 T (automobiles,) 478.33 482 T (may) 72 468 T (need) 95.85 468 T (to) 121.7 468 T (be) 134.22 468 T (learned) 148.74 468 T (by) 187.24 468 T (the) 202.43 468 T (computer) 220.28 468 T (industry:) 268.79 468 T (\337e) 314.65 468 T (xibility) 326.47 468 T (and) 364.34 468 T (responsi) 384.86 468 T (v) 424.55 468 T (eness) 430.37 468 T (is) 459.55 468 T (a) 470.75 468 T (major) 479.26 468 T (k) 510.45 468 T (e) 516.33 468 T (y) 521.47 468 T (to) 530.66 468 T (long term survi) 72 454 T (v) 145.03 454 T (al.) 150.73 454 T 2 14 Q (2.3.2 Causes of Crashes/Hangs) 72 424.67 T 0 12 Q (As) 72 404 T (in) 88.33 404 T (the) 100.67 404 T (1990) 118.34 404 T (study) 145.34 404 T (,) 170.57 404 T (we) 176.57 404 T (e) 193.56 404 T (xamined) 198.71 404 T (each) 243.04 404 T (program) 268.03 404 T (that) 311.69 404 T (crashed) 332.69 404 T (or) 372.34 404 T (hung) 385.34 404 T (to) 412.34 404 T (identify) 424.68 404 T (the) 465.02 404 T (cause) 482.68 404 T (of) 512.34 404 T (the) 525.34 404 T (f) 72 390 T (ailure.) 75.88 390 T (Source) 109.1 390 T (code) 145.32 390 T (w) 170.88 390 T (as) 179.42 390 T (a) 192.32 390 T (v) 197.41 390 T (ailable) 203.11 390 T (to) 238 390 T (us) 250.24 390 T (for) 263.8 390 T (utilities) 280.7 390 T (on) 319.61 390 T (SunOS,) 334.51 390 T (Solaris,) 374.42 390 T (Ultrix,) 413.65 390 T (HP-UX,) 448.22 390 T (GNU,) 490.78 390 T (and) 522.67 390 T (Linux;) 72 376 T (source) 107.09 376 T (code) 141.5 376 T (w) 167.24 376 T (as) 175.79 376 T (not) 188.87 376 T (a) 207.29 376 T (v) 212.38 376 T (ailable) 218.08 376 T (on) 253.16 376 T (NEXTSTEP) 268.24 376 T (,) 326.91 376 T (AIX,) 333 376 T (or) 360.41 376 T (Irix.) 373.49 376 T (F) 396.91 376 T (or) 403.4 376 T (each) 416.48 376 T (program) 441.55 376 T (f) 485.3 376 T (ailure) 489.17 376 T (on) 519.59 376 T (a) 534.67 376 T (system) 72 362 T (for) 109.96 362 T (which) 128.57 362 T (we) 162.52 362 T (had) 181.13 362 T (source) 203.08 362 T (code,) 239.02 362 T (we) 269.3 362 T (cate) 287.91 362 T (gorized) 307.05 362 T (the) 347.66 362 T (cause;) 366.94 362 T (these) 401.55 362 T (results) 430.83 362 T (are) 466.79 362 T (reported) 486.06 362 T (in) 530.66 362 T (T) 72 348 T (able) 78.37 348 T (4.) 101.36 348 T (The) 113.16 348 T (letters) 134.61 348 T (in) 166.73 348 T (the) 178.86 348 T (table) 196.32 348 T (entries) 222.44 348 T (describe) 257.23 348 T (the) 300.01 348 T (systems) 317.46 348 T (to) 358.26 348 T (which) 370.39 348 T (the) 402.51 348 T (entry) 419.97 348 T (applies.) 447.42 348 T (The) 487.21 348 T (identi-) 508.67 348 T (fying) 72 334 T (letters) 100.84 334 T (are) 133.68 334 T (gi) 151.84 334 T (v) 160.87 334 T (en) 166.69 334 T (in) 181.53 334 T (the) 194.37 334 T (\336rst) 212.55 334 T (column) 234.73 334 T (of) 274.24 334 T (T) 287.74 334 T (able) 294.11 334 T (1.) 317.1 334 T (F) 329.61 334 T (or) 336.11 334 T (the) 349.61 334 T (most) 367.78 334 T (common) 394.63 334 T (f) 440.14 334 T (ailures,) 444.02 334 T (we) 482.52 334 T (describe) 500.02 334 T (details of the causes.) 72 320 T 1 16 Q (Pointer/Array) 72 287.33 T 0 12 Q (Errors) 72 264 T (in) 104.76 264 T (the) 116.86 264 T (use) 134.3 264 T (of) 153.07 264 T (pointers) 165.83 264 T (and) 207.27 264 T (array) 227.37 264 T (subscripts) 254.79 264 T (dominate) 305.55 264 T (the) 352.99 264 T (results) 370.42 264 T (of) 404.53 264 T (our) 417.29 264 T (tests.) 436.06 264 T (These) 463.17 264 T (are) 494.59 264 T (errors) 512.02 264 T (an) 72 250 T (y) 83.15 250 T (no) 92.47 250 T (vice) 104.29 250 T (programmer) 127.6 250 T (might) 190.23 250 T (mak) 221.56 250 T (e,) 242.1 250 T (b) 253.75 250 T (ut) 259.51 250 T (surprising) 272.16 250 T (to) 323.48 250 T (\336nd) 336.14 250 T (in) 358.12 250 T (production) 370.78 250 T (code.) 426.09 250 T (In) 455.07 250 T (all) 468.38 250 T (these) 483.7 250 T (cases,) 511.68 250 T (the) 72 236 T (programmer) 90 236 T (made) 152.66 236 T (implicit) 181.99 236 T (assumptions) 222.67 236 T (about) 285.35 236 T (the) 315.35 236 T (contents) 333.35 236 T (of) 376.68 236 T (the) 390.02 236 T (data) 408.02 236 T (being) 431.35 236 T (processed;) 461.35 236 T (these) 515.34 236 T (assumptions) 72 222 T (caused) 135.43 222 T (the) 172.16 222 T (programmer) 190.91 222 T (to) 254.31 222 T (use) 267.73 222 T (insuf) 287.81 222 T (\336cient) 311.51 222 T (checks) 345.6 222 T (on) 382.34 222 T (their) 398.42 222 T (loop) 424.5 222 T (termination) 449.92 222 T (condi-) 509.34 222 T (tions.) 72 208 T (The) 102.07 208 T (presence) 124.46 208 T (of) 170.16 208 T (these) 183.88 208 T (errors) 212.27 208 T (ar) 243.98 208 T (gues) 253.09 208 T (\050minimally\051) 278.82 208 T (for) 339.88 208 T (g) 357.6 208 T (arbage-collected) 363.54 208 T (languages) 446.56 208 T (and) 498.28 208 T (full-) 519.34 208 T (time array bounds checking to help a slopp) 72 194 T (y programmer detect these problems.) 278.18 194 T (Most) 90 178 T (of) 117.63 178 T (the) 130.59 178 T (pointer) 148.22 178 T (errors) 185.18 178 T (found) 216.12 178 T (in) 247.08 178 T (the) 259.38 178 T (1995) 277 178 T (study) 303.96 178 T (were) 332.93 178 T (simple:) 359.21 178 T (increment) 397.51 178 T (the) 448.46 178 T (pointer) 466.08 178 T (past) 503.04 178 T (the) 525.34 178 T FMENDPAGE %%EndPage: "10" 10 %%Page: "11" 11 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 11) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 12 Q (end of an array) 72 712 T (. The error in \322ctags\323 is representati) 143.52 712 T (v) 314.83 712 T (e \050\336le \322ctags.c\323\051:) 320.65 712 T 3 10 Q (char line[4*BUFSIZ];) 108 694.33 T (...) 108 682.33 T (sp = line;) 108 665.33 T (...) 108 653.33 T (do {) 108 641.33 T (*++sp = c = getc\050inf\051;) 144 629.33 T (} while \050\050c != \325\134n\325\051 && \050c != EOF\051\051;) 108 617.33 T 0 12 Q (Note) 72 599 T (that) 98.5 599 T (the) 119.67 599 T (termination) 137.51 599 T (condition) 196.01 599 T (in) 244.52 599 T (the) 257.02 599 T (abo) 274.86 599 T (v) 292.01 599 T (e) 297.83 599 T (loop) 306.33 599 T (does) 330.84 599 T (not) 356 599 T (include) 374.51 599 T (an) 413.01 599 T (y) 424.16 599 T (tests) 433.33 599 T (based) 457.84 599 T (on) 488.33 599 T (the) 503.5 599 T (size) 521.34 599 T (of array \050) 72 585 T 3 F (line) 116.64 585 T 0 F (\051 being used.) 145.44 585 T (Array) 90 569 T (subscripting) 121.89 569 T (errors) 184.47 569 T (were) 216.37 569 T (also) 243.59 569 T (a) 266.83 569 T (common) 276.07 569 T (cause) 321.98 569 T (of) 352.54 569 T (f) 366.45 569 T (ailures) 370.32 569 T (in) 406.22 569 T (this) 419.47 569 T (study) 440.72 569 T (.) 465.94 569 T (Most) 472.85 569 T (of) 501.43 569 T (these) 515.34 569 T (errors) 72 555 T (appeared) 104.32 555 T (in) 151.97 555 T (routines) 165.65 555 T (that) 208.65 555 T (were) 231 555 T (using) 258.65 555 T (character) 289 555 T (input) 337.31 555 T (or) 366.32 555 T (were) 380.66 555 T (scanning) 408.31 555 T (an) 455.31 555 T (input) 470.98 555 T (line.) 499.99 555 T (An) 525.34 555 T (e) 72 541 T (xample of an error during input appears in \322cb\323 \050\336le \322cb) 77.15 541 T (.c\323\051:) 346.6 541 T 3 10 Q (char string[200];) 108 523.33 T (...) 108 511.33 T (while \050\050cc = getch\050\051\051 != c\051 {) 108 499.33 T (string[j++] = cc;) 144 487.33 T (...) 144 475.33 T (}) 108 463.33 T 0 12 Q (The) 72 445 T (termination) 93.39 445 T (condition) 151.45 445 T (on) 199.51 445 T (the) 214.24 445 T (abo) 231.63 445 T (v) 248.78 445 T (e) 254.6 445 T (loop) 262.66 445 T (checks) 286.72 445 T (the) 322.1 445 T (input) 339.5 445 T (operation,) 366.9 445 T (b) 417.95 445 T (ut) 423.71 445 T (ignores) 435.77 445 T (the) 473.83 445 T (size) 491.22 445 T (of) 512.61 445 T (the) 525.34 445 T (b) 72 431 T (uf) 77.76 431 T (fer) 87.46 431 T (into) 103.52 431 T (which) 124.93 431 T (the) 157 431 T (data) 174.4 431 T (is) 197.13 431 T (being) 207.88 431 T (read) 237.28 431 T (\050) 260.67 431 T 3 F (string) 264.67 431 T 0 F (\051.) 307.87 431 T (Another) 317.6 431 T (common) 359.67 431 T (type) 404.41 431 T (of) 427.81 431 T (error) 440.55 431 T (happens) 466.6 431 T (during) 508.67 431 T (string) 72 417 T (processing,) 103.04 417 T (where) 161.06 417 T (\050ag) 194.08 417 T (ain!\051) 209.34 417 T (the) 235.7 417 T (termination) 254.06 417 T (condition) 313.09 417 T (of) 362.13 417 T (the) 375.83 417 T (loop) 394.19 417 T (does) 419.23 417 T (not) 444.92 417 T (contain) 463.96 417 T (a) 502.99 417 T (check) 512.02 417 T (on the size of the array) 72 403 T (. The follo) 180.85 403 T (wing e) 230.88 403 T (xample comes from \322bibte) 263.03 403 T (x\323 \050\336le \322strpascal.c\323\051:) 390.49 403 T 3 10 Q (void) 108 385.33 T (null_terminate\050s\051) 108 373.33 T (char *s;) 108 361.33 T ({) 108 349.33 T (while \050*s != \325 \325\051 s++;) 144 337.33 T (...) 144 325.33 T (}) 108 313.33 T 1 16 Q (Dangerous Input Functions) 72 281.33 T 0 12 Q (The) 72 258 T (second) 94.32 258 T (most) 131.3 258 T (common) 158.3 258 T (cause) 203.96 258 T (of) 234.27 258 T (errors) 247.92 258 T (w) 279.57 258 T (as) 288.11 258 T (the) 301.76 258 T (use) 320.09 258 T (of) 339.74 258 T (dangerous) 353.39 258 T (input) 406.37 258 T (functions,) 434.7 258 T (such) 486.03 258 T (as) 511.68 258 T (the) 525.34 258 T (notorious) 72 244 T (gets\050\051) 121.28 244 T (function.) 152.54 244 T (The) 199.48 244 T (problem) 222.08 244 T (is) 266.01 244 T (that) 277.96 244 T (gets\050\051) 299.9 244 T (has) 331.16 244 T (no) 351.1 244 T (parameter) 367.04 244 T (to) 418.96 244 T (limit) 432.23 244 T (the) 458.85 244 T (length) 477.46 244 T (of) 511.4 244 T (the) 525.34 244 T (input) 72 230 T (data.) 100.43 230 T (Besides) 127.18 230 T (causing) 168.27 230 T (reliability) 208.68 230 T (problems,) 259.11 230 T (use) 310.53 230 T (of) 330.28 230 T (gets\050\051) 344.03 230 T (w) 375.11 230 T (as) 383.66 230 T (also) 397.41 230 T (the) 420.5 230 T (\337a) 438.92 230 T (w) 450.74 230 T (that) 463.16 230 T (permitted) 484.92 230 T (a) 534.67 230 T (major) 72 216 T (breach) 105.97 216 T (in) 143.93 216 T (Internet) 159.24 216 T (security[3,4].) 202.54 216 T (By) 272.5 216 T (using) 292.48 216 T (gets\050\051,) 324.46 216 T (the) 360.76 216 T (programmer) 381.4 216 T (is) 446.7 216 T (making) 460.68 216 T (implicit) 502.66 216 T (assumptions about the structure of the data being processed.) 72 202 T (The manual page from the Solaris 2.3 system wisely contains the follo) 90 186 T (wing w) 427.67 186 T (arning:) 463.21 186 T 0 9 Q (When using gets\050\051, if the length of an input line exceeds the size of s, indeterminate behavior may result. For this) 95.98 169.8 T (reason, it is strongly recommended that gets\050\051 be avoided in favor of fgets\050\051.) 95.98 158.8 T 0 12 Q (The fgets\050\051 function includes an ar) 72 141.6 T (gument to limit the maximum length of the input line.) 237.41 141.6 T (The) 90 125.6 T (C) 111.8 125.6 T (library) 122.94 125.6 T (input/output) 158.07 125.6 T (routines) 219.89 125.6 T (are) 261.7 125.6 T (not) 279.49 125.6 T (inte) 297.96 125.6 T (grated) 315.78 125.6 T (into) 348.91 125.6 T (the) 370.72 125.6 T (language;) 388.52 125.6 T (the) 438.32 125.6 T (y) 452.8 125.6 T (appear) 461.94 125.6 T (only) 497.06 125.6 T (as) 521.54 125.6 T (a) 534.67 125.6 T (collection) 72 111.6 T (of) 122.55 111.6 T (procedures) 135.76 111.6 T (to) 191.62 111.6 T (be) 204.18 111.6 T (called.) 218.73 111.6 T (Ne) 253.6 111.6 T (wer) 267.29 111.6 T (languages,) 288.5 111.6 T (lik) 342.71 111.6 T (e) 355.26 111.6 T (C++,) 363.81 111.6 T (can) 391.57 111.6 T (do) 411.44 111.6 T (a) 426.66 111.6 T (better) 435.21 111.6 T (job) 465.75 111.6 T (by) 484.3 111.6 T (inte) 499.52 111.6 T (grat-) 517.34 111.6 T (ing) 72 97.6 T (the) 90.17 97.6 T (input) 107.66 97.6 T (operation) 135.16 97.6 T (into) 183.32 97.6 T (the) 204.82 97.6 T (de\336nition) 222.32 97.6 T (of) 271.15 97.6 T (a) 283.98 97.6 T (ne) 292.14 97.6 T (w) 303.17 97.6 T (type) 314.66 97.6 T (or) 338.16 97.6 T (class) 350.98 97.6 T (\050using) 377.14 97.6 T (the) 409.97 97.6 T (\322) 427.47 97.6 T 3 F (>>) 432.8 97.6 T 0 F (\323) 447.2 97.6 T (operator\051.) 455.36 97.6 T (But) 505.17 97.6 T (the) 525.34 97.6 T (de\336nition) 72 83.6 T (of) 120.94 83.6 T (the) 133.86 83.6 T (\322) 151.46 83.6 T 3 F (>>) 156.78 83.6 T 0 F (\323) 171.18 83.6 T (operator) 179.44 83.6 T (for) 222.35 83.6 T (character) 239.27 83.6 T (strings) 286.17 83.6 T (does) 321.1 83.6 T 5 F (not) 346.03 83.6 T 0 F (include) 364.96 83.6 T (information) 403.22 83.6 T (about) 462.81 83.6 T (the) 492.41 83.6 T (length) 510 83.6 T FMENDPAGE %%EndPage: "11" 11 %%Page: "12" 12 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 12) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 14 Q (Utility) 94.22 684.67 T (Cause) 314.89 702.67 T 0 10 Q (Array/) 152.95 677.33 T (Pointer) 151.55 665.33 T (Input) 210.45 677.33 T (Functions) 201.27 665.33 T (Signed) 262.11 677.33 T (Characters) 254.62 665.33 T (Di) 312.27 677.33 T (vide by) 322.02 677.33 T (Zero) 322.56 665.33 T (EOF) 378.55 677.33 T (Check) 375.23 665.33 T (Others) 429.67 671.33 T (No Source) 476.76 677.33 T (Code) 487.45 665.33 T 0 9 Q (adb) 92.5 644 T (sShHO) 153 644 T (as) 92.5 625 T (a) 164 625 T (N) 494.75 625 T (bc) 92.5 606 T (N) 494.75 606 T (bib) 92.5 587 T (S) 163.5 587 T (cb) 92.5 568 T (haU) 158.5 568 T (AN) 491.5 568 T (cc) 92.5 549 T (N) 494.75 549 T (ccom) 92.5 530 T (ON) 491.5 530 T (check) 92.5 511 T (eq) 113.4 511 T (A) 494.75 511 T (col) 92.5 492 T (O) 162.75 492 T (SU) 382.25 492 T (sha) 437 492 T (AIN) 490 492 T (colcrt) 92.5 473 T (A) 494.75 473 T (csh) 92.5 454 T (sha) 437 454 T (ctags) 92.5 435 T (O) 162.75 435 T (L) 385.25 435 T (N) 494.75 435 T (dbx) 92.5 416 T (L) 163.25 416 T (s) 496.25 416 T (dc) 92.5 397 T (G) 439.75 397 T (IN) 493.25 397 T (derof) 92.5 378 T (f) 111.26 378 T (sShaOU) 151 378 T (N) 494.75 378 T (diction) 92.5 359 T (ShHU) 431.75 359 T (N) 494.75 359 T (ditrof) 92.5 340 T (f) 112.27 340 T (s) 164.25 340 T (SHOU) 319.75 340 T (AN) 491.5 340 T (eqn) 92.5 321 T (sShHU) 263 321 T (AIN) 490 321 T (e) 92.5 302 T (x) 96.36 302 T (h) 440.75 302 T (fmt) 92.5 283 T (N) 494.75 283 T (ftp) 92.5 264 T (sShaOU) 206 264 T (AIN) 490 264 T (indent) 92.5 245 T (sh) 162 245 T (SHOGL) 373 245 T (AN) 491.5 245 T (join) 92.5 226 T (OU) 159.5 226 T (sN) 493 226 T (le) 92.5 207 T (x) 98.86 207 T (sShHaUGL) 145 207 T (AN) 491.5 207 T (look) 92.5 188 T (shu) 159.75 188 T (HO) 381.5 188 T (N) 494.75 188 T (m4) 92.5 169 T (HU) 269.5 169 T (N) 494.75 169 T (Mail) 92.5 150 T (N) 494.75 150 T (mak) 92.5 131 T (e) 107.91 131 T (h) 163.75 131 T 2 12 Q (T) 128.89 110 T (able 4: List of Utilities that Crashed or Hung, Categorized by Cause) 135.79 110 T (The) 72.46 96 T (letters) 95.31 96 T (in) 130.14 96 T (each) 143 96 T (entry) 169.18 96 T (describe) 199.35 96 T (the) 244.86 96 T (system) 263.71 96 T (on) 301.21 96 T (while) 316.74 96 T (the) 346.92 96 T (failur) 365.77 96 T (e) 394.22 96 T (occurr) 402.4 96 T (ed) 436.17 96 T (\050see) 451.02 96 T (T) 473.19 96 T (able) 480.09 96 T (1) 504.42 96 T (f) 513.28 96 T (or) 516.97 96 T (a) 531.15 96 T (description of the system letters\051) 223.02 82 T 86.5 719.75 86.5 124.25 2 L V 0.5 H 0 Z N 138.5 720.25 138.5 123.75 2 L V N 193.5 692.25 193.5 123.75 2 L V N 248.5 692.25 248.5 123.75 2 L V N 303.5 692.25 303.5 123.75 2 L V N 360.5 692.25 360.5 123.75 2 L V N 415.5 692.25 415.5 123.75 2 L V N 470.5 692.25 470.5 123.75 2 L V N 525.5 719.75 525.5 124.25 2 L V N 86.25 720 525.75 720 2 L V N 138.25 692 525.75 692 2 L V N 86.75 657.25 525.25 657.25 2 L V N 86.75 654.75 525.25 654.75 2 L V N 86.25 124 525.75 124 2 L V N FMENDPAGE %%EndPage: "12" 12 %%Page: "13" 13 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 13) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 12 Q (of the array) 72 305 T (. F) 126.53 305 T (ollo) 139.02 305 T (wing is a typical e) 157.39 305 T (xample of ho) 244.54 305 T (w \322) 307.56 305 T 3 F (>>) 324.55 305 T 0 F (\323 is used:) 338.95 305 T 3 10 Q (char buff[BUFSIZE];) 108 287.33 T (cin >> buff;) 108 263.33 T 0 12 Q (The) 72 245 T (representation) 94.76 245 T (of) 166.83 245 T (a) 180.93 245 T (UNIX) 190.35 245 T (character) 224.44 245 T (string) 272.5 245 T (does) 303.93 245 T (not) 330.03 245 T (carry) 349.46 245 T (information) 378.2 245 T (about) 438.96 245 T (the) 469.73 245 T (size) 488.49 245 T (of) 511.24 245 T (the) 525.34 245 T (array) 72 231 T (in) 100.34 231 T (which) 113.37 231 T (it) 146.39 231 T (is) 156.76 231 T (stored.) 168.46 231 T (Y) 204.48 231 T (ou) 211.82 231 T (can) 227.52 231 T (set) 247.87 231 T (the) 264.89 231 T (maximum) 283.25 231 T (input) 335.62 231 T (line) 363.98 231 T (size) 385.68 231 T (using) 408.03 231 T (the) 437.73 231 T (C++) 456.09 231 T (input/output) 481.32 231 T (class) 72 217 T (\050using) 99 217 T (the) 132.66 217 T (cin.width\050\051) 150.99 217 T (function\051,) 207.65 217 T (b) 258.31 217 T (ut) 264.07 217 T (this) 277.07 217 T (requires) 298.08 217 T (e) 340.4 217 T (xtra) 345.55 217 T (and) 367.87 217 T (e) 388.87 217 T (xplicit) 394.02 217 T (action) 428.36 217 T (by) 461.35 217 T (the) 477.02 217 T (program-) 495.35 217 T (mer; the def) 72 203 T (ault case has dangerous beha) 129.86 203 T (vior) 268.25 203 T (.) 286.92 203 T 1 16 Q (Signed Characters) 72 170.33 T 0 12 Q (The) 72 147 T (con) 94.84 147 T (v) 111.69 147 T (ersion) 117.51 147 T (of) 151.02 147 T (numbers) 165.2 147 T (from) 210.71 147 T (one) 238.22 147 T (size) 259.73 147 T (to) 282.58 147 T (another) 296.1 147 T (can) 336.27 147 T (cause) 357.11 147 T (problems;) 387.94 147 T (the) 440.13 147 T (problem) 458.97 147 T (is) 503.15 147 T (com-) 515.34 147 T (pounded) 72 133 T (by) 116.61 133 T (using) 131.89 133 T (characters) 161.18 133 T (in) 213.1 133 T (both) 225.72 133 T (their) 250.34 133 T (symbolic) 275.61 133 T (and) 322.9 133 T (numeric) 343.51 133 T (forms.) 386.12 133 T (In) 420.4 133 T (C) 433.68 133 T (\050and) 444.96 133 T (C++\051,) 469.57 133 T (the) 501.39 133 T (type) 519.34 133 T (\322char\323) 72 115.8 T (is) 106.06 115.8 T (a) 116.81 115.8 T (signed,) 124.89 115.8 T (8-bit) 161.97 115.8 T (inte) 187.38 115.8 T (ger) 205.2 115.8 T (on) 223.28 115.8 T (most) 238.02 115.8 T (UNIX) 264.11 115.8 T (systems) 296.85 115.8 T 0 9.6 Q (1) 334.85 120.6 T 0 12 Q (.) 339.65 115.8 T (The) 345.4 115.8 T (presence) 366.81 115.8 T (of) 411.54 115.8 T (a) 424.28 115.8 T (sign) 432.36 115.8 T (bit) 455.11 115.8 T (can) 470.53 115.8 T (be) 489.93 115.8 T (confus-) 504.01 115.8 T 0 9 Q (nrof) 92.5 644 T (f) 107.27 644 T (SHOU) 319.75 644 T (AIN) 490 644 T (plot) 92.5 625 T (O) 162.75 625 T (sh) 439 625 T (N) 494.75 625 T (prolog) 92.5 606 T (sh) 162 606 T (ptx) 92.5 587 T (sShH) 156.25 587 T (A) 494.75 587 T (refer) 92.5 568 T (shU) 158.75 568 T (AHN) 488.25 568 T (spell) 92.5 549 T (sha) 160 549 T (SOU) 434 549 T (N) 494.75 549 T (spline) 92.5 530 T (N) 494.75 530 T (strings) 92.5 511 T (O) 162.75 511 T (style) 92.5 492 T (ShH) 435 492 T (N) 494.75 492 T (telnet) 92.5 473 T (sShaU) 209.25 473 T (AIN) 490 473 T (tsort) 92.5 454 T (L) 163.25 454 T (sha) 215 454 T (N) 494.75 454 T (ul) 92.5 435 T (sShHOUL) 147 435 T (AIN) 490 435 T (uniq) 92.5 416 T (sShaU) 154.25 416 T (IN) 493.25 416 T (units) 92.5 397 T (SshaO) 154.25 397 T (AIN) 490 397 T (vgrind) 92.5 378 T (N) 494.75 378 T 72 96 540 111 C 0 0 0 1 0 0 0 1 K 81 109 225 109 2 L 0.5 H 2 Z 0 X N -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (1.) 90 89.33 T (Both the number of bits and presence of a sign bit are system dependent. If the programmer really does) 100 89.33 T (not w) 102 77.33 T (ant a sign bit, then the declaration should include \322unsigned\323.) 124.4 77.33 T 0 14 Q (Utility) 94.22 684.67 T (Cause) 314.89 702.67 T 0 10 Q (Array/) 152.95 677.33 T (Pointer) 151.55 665.33 T (Input) 210.45 677.33 T (Functions) 201.27 665.33 T (Signed) 262.11 677.33 T (Characters) 254.62 665.33 T (Di) 312.27 677.33 T (vide by) 322.02 677.33 T (Zero) 322.56 665.33 T (EOF) 378.55 677.33 T (Check) 375.23 665.33 T (Others) 429.67 671.33 T (No Source) 476.76 677.33 T (Code) 487.45 665.33 T 2 12 Q (T) 128.89 357 T (able 4: List of Utilities that Crashed or Hung, Categorized by Cause) 135.79 357 T (The) 72.46 343 T (letters) 95.31 343 T (in) 130.14 343 T (each) 143 343 T (entry) 169.18 343 T (describe) 199.35 343 T (the) 244.86 343 T (system) 263.71 343 T (on) 301.21 343 T (while) 316.74 343 T (the) 346.92 343 T (failur) 365.77 343 T (e) 394.22 343 T (occurr) 402.4 343 T (ed) 436.17 343 T (\050see) 451.02 343 T (T) 473.19 343 T (able) 480.09 343 T (1) 504.42 343 T (f) 513.28 343 T (or) 516.97 343 T (a) 531.15 343 T (description of the system letters\051) 223.02 329 T 86.5 719.75 86.5 371.25 2 L V 0.5 H 0 Z N 138.5 720.25 138.5 370.75 2 L V N 193.5 692.25 193.5 370.75 2 L V N 248.5 692.25 248.5 370.75 2 L V N 303.5 692.25 303.5 370.75 2 L V N 360.5 692.25 360.5 370.75 2 L V N 415.5 692.25 415.5 370.75 2 L V N 470.5 692.25 470.5 370.75 2 L V N 525.5 719.75 525.5 371.25 2 L V N 86.25 720 525.75 720 2 L V N 138.25 692 525.75 692 2 L V N 86.75 657.25 525.25 657.25 2 L V N 86.75 654.75 525.25 654.75 2 L V N 86.25 371 525.75 371 2 L V N FMENDPAGE %%EndPage: "13" 13 %%Page: "14" 14 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 14) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 12 Q (ing) 72 712 T (and) 90.48 712 T (error) 110.95 712 T (prone) 137.41 712 T (\050with) 167.88 712 T (the) 196.35 712 T (possibility) 214.16 712 T (of) 267.32 712 T (sign-e) 280.46 712 T (xtension\051) 309.61 712 T (when) 357.41 712 T (doing) 386.55 712 T (arithmetic.) 417.03 712 T (The) 471.83 712 T (follo) 493.63 712 T (wing) 516 712 T (e) 72 698 T (xample comes from "eqn" \050\336le \322lookup.c\323\051:) 77.15 698 T 3 10 Q (register int h;) 108 680.33 T (...) 108 668.33 T (register char *s = name;) 108 656.33 T (for \050h = 0; *s != \325\1340\325;\051) 108 632.33 T (h += *s++;) 144 620.33 T (h %= TBLSIZE;) 108 608.33 T 0 12 Q (The) 72 590 T (v) 93.91 590 T (alue) 99.61 590 T (pointed) 122.86 590 T (to) 162.12 590 T (by) 174.71 590 T 3 F (s) 189.96 590 T 0 F (is) 200.41 590 T (a) 211.67 590 T (signed) 220.26 590 T (character) 254.84 590 T (and) 302.07 590 T 3 F (h) 322.65 590 T 0 F (is) 333.1 590 T (an) 344.36 590 T (inte) 358.94 590 T (ger) 376.76 590 T (.) 391.43 590 T (Characters) 397.68 590 T (that) 452.25 590 T (are) 473.5 590 T (pointed) 491.41 590 T (to) 530.66 590 T (by) 72 572.8 T 3 F (s) 87.1 572.8 T 0 F (may) 97.4 572.8 T (ha) 121.16 572.8 T (v) 132.25 572.8 T (e) 138.07 572.8 T (their) 146.5 572.8 T (high-order) 171.6 572.8 T (bit) 225.35 572.8 T (on,) 241.12 572.8 T (making) 259.22 572.8 T 3 F (h) 298.32 572.8 T 0 F (ne) 308.62 572.8 T (g) 319.77 572.8 T (ati) 325.71 572.8 T (v) 337.41 572.8 T (e) 343.23 572.8 T 0 9.6 Q (2) 348.56 577.6 T 0 12 Q (\050) 356.46 572.8 T 3 F (h) 360.45 572.8 T 0 F (will) 370.75 572.8 T (subsequently) 392.52 572.8 T (be) 458.29 572.8 T (used) 472.71 572.8 T (as) 497.81 572.8 T (a) 510.91 572.8 T (sub-) 519.34 572.8 T (script\051.) 72 558.8 T 1 16 Q (End-of-File Checks) 72 526.13 T 0 12 Q (Checking) 72 502.8 T (for) 122.11 502.8 T (end-of-\336le) 140.22 502.8 T (is) 194.99 502.8 T (another) 207.11 502.8 T (case) 247.21 502.8 T (of) 271.98 502.8 T (the) 286.09 502.8 T (programmer) 304.87 502.8 T (making) 368.3 502.8 T (implicit) 408.42 502.8 T (assumptions) 449.88 502.8 T (about) 513.34 502.8 T (the) 72 488.8 T (structure) 90.33 488.8 T (of) 135.98 488.8 T (input) 149.64 488.8 T (data.) 177.98 488.8 T (It) 204.63 488.8 T (is) 215.63 488.8 T (a) 227.3 488.8 T (common,) 236.29 488.8 T (b) 284.95 488.8 T (ut) 290.71 488.8 T (dangerous) 303.71 488.8 T (assumption) 356.7 488.8 T (that) 415.03 488.8 T (end-of-\336le) 436.7 488.8 T (will) 491.01 488.8 T (occur) 513.35 488.8 T (only) 72 474.8 T (after) 96.19 474.8 T (a) 121.02 474.8 T (complete) 129.2 474.8 T (input) 176.05 474.8 T (line;) 203.57 474.8 T (i.e.,) 227.76 474.8 T (end-of-\336le) 248.27 474.8 T (will) 301.78 474.8 T (al) 323.3 474.8 T (w) 331.85 474.8 T (ays) 340.39 474.8 T (immediately) 359.24 474.8 T (follo) 422.09 474.8 T (w) 444.46 474.8 T (a) 455.97 474.8 T (ne) 464.15 474.8 T (wline) 475.18 474.8 T (charac-) 504.7 474.8 T (ter) 72 460.8 T (.) 84 460.8 T (While) 90.01 460.8 T (this) 122.35 460.8 T (assumption) 142.7 460.8 T (can) 200.38 460.8 T (simplify) 220.04 460.8 T (the) 263.06 460.8 T (structure) 280.73 460.8 T (of) 325.73 460.8 T (the) 338.74 460.8 T (application) 356.41 460.8 T (code,) 412.75 460.8 T (it) 441.42 460.8 T (lea) 451.1 460.8 T (v) 464.85 460.8 T (es) 470.67 460.8 T (the) 483.67 460.8 T (applica-) 501.35 460.8 T (tion vulnerable to crashing or hanging.) 72 446.8 T 2 14 Q (2.3.3 Comparison of Results to the 1990 Study) 72 417.47 T 0 12 Q (When) 72 396.8 T (we) 105.27 396.8 T (compare) 123.87 396.8 T (the) 169.79 396.8 T (results) 189.07 396.8 T (from) 225.01 396.8 T (the) 252.95 396.8 T (1995) 272.22 396.8 T (study) 300.83 396.8 T (to) 331.45 396.8 T (those) 345.39 396.8 T (from) 375.33 396.8 T (1990,) 403.27 396.8 T (it) 434.88 396.8 T (is) 446.17 396.8 T (interesting) 458.78 396.8 T (to) 514.05 396.8 T (go) 528 396.8 T (be) 72 382.8 T (yond) 83.15 382.8 T (the) 110.33 382.8 T (ra) 128.17 382.8 T (w) 137.31 382.8 T (numbers.) 149.15 382.8 T (When) 196.66 382.8 T (we) 228.49 382.8 T (e) 245.66 382.8 T (xamined) 250.81 382.8 T (the) 295.32 382.8 T (b) 313.16 382.8 T (ugs) 318.92 382.8 T (that) 338.76 382.8 T (caused) 359.94 382.8 T (the) 395.77 382.8 T (f) 413.61 382.8 T (ailures,) 417.49 382.8 T (a) 455.66 382.8 T (distressing) 464.16 382.8 T (phe-) 518.68 382.8 T (nomenon) 72 368.8 T (emer) 120.44 368.8 T (ged:) 144.21 368.8 T (man) 168.65 368.8 T (y) 189.14 368.8 T (of) 198.91 368.8 T (the) 212.68 368.8 T (b) 231.13 368.8 T (ugs) 236.89 368.8 T (disco) 257.33 368.8 T (v) 282.48 368.8 T (ered) 288.3 368.8 T (\050approximately) 312.73 368.8 T (40%\051) 389.83 368.8 T (and) 419.6 368.8 T (reported) 440.7 368.8 T (in) 484.46 368.8 T (1990) 497.57 368.8 T (are) 525.35 368.8 T (still) 72 354.8 T (present) 93.13 354.8 T (in) 130.9 354.8 T (their) 143.36 354.8 T (e) 168.47 354.8 T (xact) 173.62 354.8 T (form) 196.73 354.8 T (in) 223.18 354.8 T (1995.) 235.63 354.8 T (The) 265.75 354.8 T (1990) 287.53 354.8 T (study) 314.64 354.8 T (w) 343.77 354.8 T (as) 352.31 354.8 T (widely) 365.42 354.8 T (published) 401.21 354.8 T (in) 450.99 354.8 T (at) 463.45 354.8 T (least) 475.23 354.8 T (tw) 500.34 354.8 T (o) 512.22 354.8 T (lan-) 521.34 354.8 T (guages.) 72 340.8 T (The) 112.02 340.8 T (code) 134.38 340.8 T (w) 160.74 340.8 T (as) 169.29 340.8 T (made) 182.98 340.8 T (freely) 212.67 340.8 T (a) 244.36 340.8 T (v) 249.45 340.8 T (ailable) 255.15 340.8 T (via) 290.84 340.8 T (anon) 309.2 340.8 T (ymous) 332.35 340.8 T (ftp.) 368.05 340.8 T (The) 388.09 340.8 T (e) 410.45 340.8 T (xact) 415.6 340.8 T (random) 439.29 340.8 T (data) 479.65 340.8 T (streams) 503.34 340.8 T (used) 72 326.8 T (in) 97.27 326.8 T (our) 109.89 326.8 T (testing) 129.16 326.8 T (were) 164.44 326.8 T (freely) 191.03 326.8 T (a) 222.29 326.8 T (v) 227.38 326.8 T (ailable) 233.08 326.8 T (via) 268.35 326.8 T (ftp.) 286.29 326.8 T (The) 305.9 326.8 T (identi\336cation) 327.83 326.8 T (of) 394.45 326.8 T (f) 407.72 326.8 T (ailures) 411.6 326.8 T (that) 446.87 326.8 T (we) 468.14 326.8 T (found) 485.41 326.8 T (were) 516.68 326.8 T (also) 72 312.8 T (made) 94.25 312.8 T (freely) 123.15 312.8 T (a) 154.05 312.8 T (v) 159.14 312.8 T (ailable) 164.84 312.8 T (via) 199.75 312.8 T (ftp;) 217.32 312.8 T (these) 236.91 312.8 T (included) 264.48 312.8 T (code) 308.72 312.8 T (fragments) 334.29 312.8 T (with) 385.2 312.8 T (\336le) 409.45 312.8 T (and) 427.7 312.8 T (line) 447.94 312.8 T (number) 468.86 312.8 T (for) 508.43 312.8 T (the) 525.34 312.8 T (errant) 72 298.8 T (code.) 103.5 298.8 T (According) 132.66 298.8 T (to) 186.83 298.8 T (our) 199.68 298.8 T (records,) 219.19 298.8 T (o) 261.02 298.8 T (v) 266.84 298.8 T (er) 272.66 298.8 T (2000) 285.49 298.8 T (copies) 313.01 298.8 T (of) 347.18 298.8 T (the) 360.69 298.8 T (fuzz) 378.86 298.8 T (tools) 403.03 298.8 T (and) 429.88 298.8 T (b) 450.72 298.8 T (ug) 456.48 298.8 T (identi\336cations) 471.99 298.8 T (were fetched from our ftp site.) 72 284.8 T (Se) 90 268.8 T (v) 101.7 268.8 T (eral) 107.52 268.8 T (of) 129.37 268.8 T (the) 143.22 268.8 T (b) 161.74 268.8 T (ugs) 167.5 268.8 T (found) 188.03 268.8 T (in) 219.88 268.8 T (the) 233.07 268.8 T (1995) 251.6 268.8 T (study) 279.45 268.8 T (were) 309.31 268.8 T (lik) 336.49 268.8 T (ely) 349.04 268.8 T (present) 367.56 268.8 T (in) 406.08 268.8 T (the) 419.27 268.8 T (1990) 437.79 268.8 T (study) 465.65 268.8 T (,) 490.87 268.8 T (b) 497.73 268.8 T (ut) 503.49 268.8 T (were) 516.68 268.8 T (mask) 72 254.8 T (ed) 97.21 254.8 T (by) 112.51 254.8 T (the) 128.48 254.8 T (original) 147.11 254.8 T (b) 188.41 254.8 T (ugs.) 194.17 254.8 T (Fixing) 217.81 254.8 T (the) 253.12 254.8 T (original) 271.76 254.8 T (b) 313.06 254.8 T (ugs) 318.82 254.8 T (and) 339.46 254.8 T (re-testing) 360.75 254.8 T (should) 410.05 254.8 T (ha) 446.02 254.8 T (v) 457.11 254.8 T (e) 462.93 254.8 T (e) 472.23 254.8 T (xposed) 477.37 254.8 T (these) 515.34 254.8 T (ne) 72 240.8 T (w ones.) 83.03 240.8 T (The) 90 224.8 T (techniques) 111.55 224.8 T (used) 165.76 224.8 T (in) 190.64 224.8 T (this) 202.87 224.8 T (study) 223.1 224.8 T (are) 251.99 224.8 T (simple) 269.53 224.8 T (and) 304.42 224.8 T (mostly) 324.64 224.8 T (automatic.) 360.2 224.8 T (It) 413.42 224.8 T (is) 423.64 224.8 T (dif) 434.53 224.8 T (\336cult) 447.56 224.8 T (to) 475.12 224.8 T (understand) 487.34 224.8 T (wh) 72 210.8 T (y a v) 86.6 210.8 T (endor w) 109.75 210.8 T (ould not partak) 148.62 210.8 T (e of a free and easy source of reliability impro) 221.16 210.8 T (v) 442.58 210.8 T (ements.) 448.4 210.8 T 72 96 540 111 C 0 0 0 1 0 0 0 1 K 81 109 225 109 2 L 0.5 H 2 Z 0 X N -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (2.) 90 89.33 T (The standard, printable characters do not ha) 100 89.33 T (v) 275.03 89.33 T (e their high-order bit on, b) 279.88 89.33 T (ut it is not safe to assume that) 385.22 89.33 T (these are the only characters that will be read as input.) 102 77.33 T FMENDPAGE %%EndPage: "14" 14 %%Page: "15" 15 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 15) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 2 16 Q (3 NETW) 72 709.33 T (ORK SER) 132.74 709.33 T (VICES) 203.42 709.33 T 0 12 Q (The) 72 686 T (fuzz) 93.6 686 T (testing) 117.2 686 T (techniques) 152.15 686 T (are) 206.41 686 T (ef) 224.01 686 T (fecti) 233.03 686 T (v) 254.06 686 T (e) 259.88 686 T (for) 268.15 686 T (\336nding) 285.08 686 T (reliability) 322.04 686 T (problems) 371.65 686 T (in) 419.25 686 T (real) 431.53 686 T (programs.) 452.46 686 T (A) 503.73 686 T (natu-) 515.34 686 T (ral) 72 672 T (question) 88.02 672 T (is:) 132.04 672 T (in) 146.74 672 T (what) 159.43 672 T (other) 186.12 672 T (domains) 214.14 672 T (can) 258.16 672 T (these) 278.18 672 T (techniques) 306.19 672 T (be) 360.88 672 T (applied?) 375.56 672 T (Our) 419.58 672 T (\336rst) 441.59 672 T (ne) 463.62 672 T (w) 474.65 672 T (application) 486.67 672 T (of the fuzz techniques w) 72 658 T (as to test netw) 189.18 658 T (ork services.) 257.39 658 T (Internet) 90 642 T (netw) 130.33 642 T (ork) 153.54 642 T (services) 172.55 642 T (are) 214.21 642 T (identi\336ed) 231.88 642 T (by) 280.22 642 T (a) 295.24 642 T (host) 303.58 642 T (name) 326.59 642 T (and) 355.6 642 T (port) 375.94 642 T (number) 398.28 642 T (.) 434.28 642 T (Most) 440.29 642 T (hosts) 467.98 642 T (support) 495.66 642 T (a) 534.67 642 T (collection) 72 628 T (of) 123.11 628 T (services,) 136.88 628 T (such) 182.31 628 T (as) 208.08 628 T (remote) 221.86 628 T (login) 258.96 628 T (\050\322rlogind\323) 287.41 628 T (and) 340.51 628 T (\322telnetd\323\051,) 361.61 628 T (\336le) 415.71 628 T (transfer) 434.82 628 T (\050\322ftpd\323\051,) 475.25 628 T (user) 520.01 628 T (information) 72 614 T (\050\322\336ngerd\323\051,) 132.64 614 T (time) 192.26 614 T (synchronization) 217.56 614 T (protocols) 298.19 614 T (\050\322timed\323\051,) 346.83 614 T (and) 399.79 614 T (remote) 421.09 614 T (procedures) 458.39 614 T (calls.) 515 614 T (T) 72 600 T (o) 78.37 600 T (test) 87.1 600 T (these) 106.49 600 T (services,) 133.88 600 T (we) 178.26 600 T (wrote) 194.98 600 T (a) 225.03 600 T (simple) 233.09 600 T (program) 267.82 600 T (\050called) 311.2 600 T (\322portjig\323\051) 346.58 600 T (that) 395.96 600 T (w) 416.69 600 T (ould) 425.23 600 T (attach) 449.29 600 T (to) 480.68 600 T (a) 492.74 600 T (netw) 500.8 600 T (ork) 524 600 T (port) 72 586 T (and) 94.2 586 T (then) 114.4 586 T (send) 137.93 586 T (random) 162.8 586 T (data) 202.33 586 T (from) 225.19 586 T (the) 251.39 586 T (fuzz) 268.93 586 T (generator) 292.45 586 T (.) 337.1 586 T (This) 342.97 586 T (testing) 367.18 586 T (con\336guration) 402.05 586 T (is) 468.92 586 T (illustrated) 479.79 586 T (in) 530.66 586 T (Figure) 72 572 T (1.) 106.33 572 T 2 F (Figur) 216.46 342 T (e) 244.91 342 T (1: T) 253.24 342 T (esting Netw) 273.14 342 T (ork Ser) 332.67 342 T (vices) 370.88 342 T 0 F (Most) 90 312 T (UNIX) 117.65 312 T (services) 150.63 312 T (are) 192.26 312 T (typically) 209.9 312 T (listed) 254.88 312 T (in) 283.86 312 T (a) 296.18 312 T (\336le) 304.49 312 T (called) 322.81 312 T (\322/etc/services\323.) 354.45 312 T (Our) 430.41 312 T (test) 452.05 312 T (script) 471.7 312 T (selected) 501.35 312 T (each) 72 298 T (service) 96.9 298 T (in) 133.81 298 T (this) 146.06 298 T (\336le) 166.32 298 T (and) 184.57 298 T (sent) 204.82 298 T (it) 227.07 298 T (random) 236.66 298 T (data.) 276.24 298 T (W) 302.15 298 T (e) 312.52 298 T (tested) 320.77 298 T (both) 351.68 298 T (TCP) 375.94 298 T (\050connection-based\051) 400.87 298 T (and) 495.75 298 T (UDP) 516 298 T (\050datagram-based\051 services.) 72 284 T (Se) 90 268 T (v) 101.7 268 T (eral) 107.52 268 T (years) 129.41 268 T (ago,) 158.64 268 T (we) 182.87 268 T (informally) 200.77 268 T (tested) 255.34 268 T (netw) 287.24 268 T (ork) 310.45 268 T (services) 330.35 268 T (on) 372.91 268 T (a) 388.82 268 T (fe) 398.05 268 T (w) 407.08 268 T (UNIX) 419.65 268 T (systems) 453.54 268 T (and) 495.45 268 T (were) 516.68 268 T (able) 72 254 T (to) 95.07 254 T (crash) 107.47 254 T (only) 135.87 254 T (tw) 160.27 254 T (o) 172.15 254 T (utilities) 181.23 254 T (\050\322ftpd\323) 220.31 254 T (and) 257.37 254 T (\322telnetd\323\051.) 277.77 254 T (W) 331.16 254 T (e) 341.53 254 T (ran) 349.93 254 T (our) 368.32 254 T (current) 387.39 254 T (tests) 424.45 254 T (on) 448.86 254 T (SunOS,) 463.93 254 T (NEXT-) 504.01 254 T (STEP) 72 240 T (,) 98.68 240 T (and) 104.53 240 T (Linux.) 124.7 240 T 1 F (In) 159.22 240 T (this) 172.06 240 T (study) 192.25 240 T (,) 216.92 240 T (we) 222.77 240 T (wer) 238.95 240 T (e) 256.51 240 T (not) 264.69 240 T (able) 282.87 240 T (to) 306.38 240 T (cr) 318.57 240 T (ash) 328.39 240 T (any) 347.9 240 T (of) 368.08 240 T (the) 380.26 240 T (services) 397.78 240 T (that) 439.28 240 T (we) 460.8 240 T (tested) 476.98 240 T (on) 507.82 240 T (any) 522.67 240 T (UNIX) 72 226 T (system.) 102.8 226 T 0 F (This) 140.6 226 T (result) 164.74 226 T (bodes) 194.22 226 T (well) 225.02 226 T (for) 248.49 226 T (netw) 265.29 226 T (ork) 288.5 226 T (reliability) 307.3 226 T (and) 356.78 226 T (safety) 376.91 226 T (.) 404.79 226 T (Curiously) 410.59 226 T (though,) 460.74 226 T (we) 499.89 226 T (were) 516.68 226 T (able) 72 212 T (to) 96.15 212 T (crash) 109.65 212 T (some) 139.13 212 T (of) 168.62 212 T (the) 182.78 212 T (client) 201.61 212 T (programs) 232.43 212 T (for) 281.92 212 T (netw) 300.07 212 T (ork) 323.28 212 T (services) 343.43 212 T (\050such) 386.25 212 T (as) 416.4 212 T (\322telnet\323) 430.56 212 T (and) 472.04 212 T (\322ftp\323,) 493.53 212 T (see) 524.68 212 T (T) 72 198 T (able) 78.37 198 T (4\051.) 101.36 198 T 72 72 540 720 C 90 352 522 568 C 0 0 0 1 0 0 0 1 K 369 379 486 541 R 7 X V 3 H 2 Z 0 X N 4 X 90 450 45 45 153 460 G 0 X 90 450 45 45 153 460 A 4 X 90 450 45 45 279 460 G 0 X 90 450 45 45 279 460 A 4 X 90 450 45 45 427.5 460 G 0.5 H 0 X 90 450 45 45 427.5 460 A 0 18 Q (Fuzz) 135 454.91 T (Portjig) 254.49 453.86 T (Service) 400.51 453.86 T 362.31 460 364.68 460 2 L 3 H 0 Z N 90 450 1.5 1.5 362.31 460 G 364.68 460 362.81 465.12 380.69 460 362.81 454.88 4 Y 1 H N 364.68 460 362.81 465.12 380.69 460 362.81 454.88 4 Y V 324 460 362.31 460 2 L 3 H 2 Z N 213.81 460 216.18 460 2 L 0 Z N 90 450 1.5 1.5 213.81 460 G 216.18 460 214.31 465.12 232.19 460 214.31 454.88 4 Y 1 H N 216.18 460 214.31 465.12 232.19 460 214.31 454.88 4 Y V 198 460 213.81 460 2 L 3 H 2 Z N 72 72 540 720 C -45 -45 657 837 C 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "15" 15 %%Page: "16" 16 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 16) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 2 16 Q (4 X-WINDO) 72 709.33 T (W APPLICA) 157.86 709.33 T (TIONS AND SER) 247.44 709.33 T (VERS) 370.13 709.33 T 0 12 Q (Our) 72 686 T (ne) 93.81 686 T (xt) 104.96 686 T (tar) 117.44 686 T (get) 129.89 686 T (for) 147.7 686 T (fuzz) 164.84 686 T (testing) 188.64 686 T (w) 223.79 686 T (as) 232.34 686 T (the) 245.48 686 T (windo) 263.29 686 T (w) 292.99 686 T (system) 304.81 686 T (and) 341.29 686 T (its) 361.77 686 T (application) 376.26 686 T (programs.) 432.73 686 T (An) 484.21 686 T (increas-) 502.02 686 T (ing) 72 672 T (number) 91.03 672 T (of) 131.38 672 T (application) 145.07 672 T (programs) 202.09 672 T (are) 251.11 672 T (based) 269.45 672 T (on) 300.47 672 T (graphical) 316.17 672 T (user) 364.51 672 T (interf) 388.2 672 T (aces,) 414.07 672 T (so) 441.41 672 T (X-W) 455.77 672 T (indo) 479.28 672 T (w) 500.32 672 T (based) 512.68 672 T (applications) 72 658 T (and) 132.82 658 T (serv) 152.97 658 T (ers) 172.78 658 T (were) 189.6 658 T (natural) 215.73 658 T (tar) 251.88 658 T (gets) 264.32 658 T (for) 286.48 658 T (the) 303.29 658 T (fuzz) 320.78 658 T (testing.) 344.25 658 T (Ev) 382.08 658 T (en) 395.23 658 T (though) 409.38 658 T (most) 445.54 658 T (of) 471.7 658 T (these) 484.52 658 T (appli-) 512 658 T (cations) 72 644 T (were) 109.55 644 T (written) 136.43 644 T (more) 173.98 644 T (recently) 202.2 644 T (than) 244.41 644 T (the) 268.63 644 T (basic) 286.86 644 T (UNIX) 315.08 644 T (utilities,) 348.62 644 T (the) 391.19 644 T (y) 405.68 644 T (still) 415.23 644 T (had) 436.8 644 T (high) 457.69 644 T (f) 482.59 644 T (ailure) 486.46 644 T (rates) 517.34 644 T (under) 72 630 T (random) 103.88 630 T (input) 145.1 630 T (tests.) 174.34 630 T (The) 203.23 630 T (X) 226.45 630 T (serv) 239.68 630 T (er) 259.49 630 T (pro) 273.37 630 T (v) 289.19 630 T (ed) 295.01 630 T (resistant) 310.9 630 T (to) 355.45 630 T (crashing.) 369.35 630 T (Section) 417.56 630 T (4.1) 456.56 630 T (describes) 476.12 630 T (the) 525.34 630 T (tools) 72 616 T (we) 99.04 616 T (used) 116.74 616 T (to) 142.43 616 T (test) 155.47 616 T (the) 175.84 616 T (windo) 194.21 616 T (w) 223.91 616 T (serv) 236.28 616 T (er) 256.09 616 T (and) 269.11 616 T (applications,) 290.14 616 T (Section) 354.84 616 T (4.2) 393.84 616 T (describes) 412.55 616 T (the) 460.9 616 T (tests) 479.27 616 T (that) 504.3 616 T (we) 526.01 616 T (performed, and Section) 72 602 T (4.3 presents the results from applying these tests to applications.) 187.31 602 T 2 14 Q (4.1 X-W) 72 572.67 T (indo) 121.52 572.67 T (w Fuzz T) 147.84 572.67 T (ools) 201.77 572.67 T 0 12 Q (T) 72 552 T (o) 78.37 552 T (send) 88.63 552 T (random) 114.89 552 T (input) 155.81 552 T (to) 184.74 552 T (the) 198.34 552 T (X-W) 217.26 552 T (indo) 240.77 552 T (w) 261.8 552 T (serv) 274.73 552 T (er) 294.54 552 T (or) 308.12 552 T (applications,) 322.38 552 T (we) 387.64 552 T (interposed) 405.89 552 T (our) 460.14 552 T (testing) 480.4 552 T (tools) 516.66 552 T (between) 72 534.8 T (the) 115.46 534.8 T (client) 133.6 534.8 T (and) 163.73 534.8 T (the) 184.53 534.8 T (serv) 202.67 534.8 T (er) 222.48 534.8 T (.) 231.15 534.8 T (The) 237.62 534.8 T (interposed) 259.76 534.8 T (program,) 313.22 534.8 T (called) 360.35 534.8 T 1 F (xwinjig) 392.48 534.8 T 0 9.6 Q (1) 427.82 539.6 T 0 12 Q (,) 432.62 534.8 T (can) 439.09 534.8 T (generate) 459.22 534.8 T (random) 503.34 534.8 T (input) 72 520.8 T (or) 99.47 520.8 T (modify) 112.26 520.8 T (the) 149.72 520.8 T (re) 167.18 520.8 T (gular) 176.33 520.8 T (communication) 203.78 520.8 T (stream) 281.24 520.8 T (between) 316.03 520.8 T (the) 358.81 520.8 T (X-W) 376.27 520.8 T (indo) 399.78 520.8 T (w) 420.82 520.8 T (application) 432.28 520.8 T (and) 488.4 520.8 T (serv) 508.52 520.8 T (er) 528.34 520.8 T (.) 537 520.8 T (The) 90 504.8 T (xwinjig) 111.48 504.8 T (program) 150.97 504.8 T (pretends) 194.45 504.8 T (to) 237.92 504.8 T (be) 250.08 504.8 T (an) 264.22 504.8 T (X) 278.37 504.8 T (serv) 289.85 504.8 T (er) 309.67 504.8 T (to) 321.81 504.8 T (the) 333.96 504.8 T (applications,) 351.45 504.8 T (and) 415.26 504.8 T (pretends) 435.41 504.8 T (to) 478.89 504.8 T (be) 491.04 504.8 T (a) 505.19 504.8 T (client) 513.34 504.8 T (to the real serv) 72 490.8 T (er) 142.8 490.8 T (.) 151.46 490.8 T (The) 157.46 490.8 T (X-W) 180.55 490.8 T (indo) 204.06 490.8 T (w) 225.09 490.8 T (system) 238.18 490.8 T (is) 275.95 490.8 T (capable) 288.38 490.8 T (of) 329.45 490.8 T (running) 343.87 490.8 T (on) 385.63 490.8 T (machines) 402.05 490.8 T (with) 451.8 490.8 T (multiple) 477.57 490.8 T (dis-) 522 490.8 T (plays,) 72 476.8 T (and) 103.75 476.8 T (the) 124.5 476.8 T (X) 142.59 476.8 T (serv) 154.68 476.8 T (er) 174.49 476.8 T (has) 187.24 476.8 T (a) 206.66 476.8 T (separate) 215.41 476.8 T (TCP/IP) 258.14 476.8 T (port) 297.58 476.8 T (for) 320.33 476.8 T (each) 337.74 476.8 T (of) 363.15 476.8 T (its) 376.57 476.8 T (displays.) 391.33 476.8 T (These) 437.09 476.8 T (ports) 469.17 476.8 T (are) 496.59 476.8 T (num-) 514.67 476.8 T (bered) 72 461.55 T (,) 149 461.55 T (where) 156.08 461.55 T (is) 202.56 461.55 T (the) 214.65 461.55 T (display) 233.39 461.55 T (number) 272.14 461.55 T (\050display) 312.88 461.55 T (0) 355.63 461.55 T (is) 365.71 461.55 T (the) 377.79 461.55 T (standard) 396.54 461.55 T (def) 441.27 461.55 T (ault) 456.48 461.55 T (display\051.) 478.56 461.55 T (W) 524.3 461.55 T (e) 534.67 461.55 T (change) 72 447.55 T (the) 109.97 447.55 T (def) 128.62 447.55 T (ault) 143.82 447.55 T (display) 165.8 447.55 T (by) 204.46 447.55 T (setting) 220.44 447.55 T (the) 256.43 447.55 T (DISPLA) 275.08 447.55 T (Y) 315.82 447.55 T (en) 328.46 447.55 T (vironment) 339.31 447.55 T (v) 392.63 447.55 T (ariable) 398.33 447.55 T (to) 434.96 447.55 T (a) 448.28 447.55 T (higher) 457.6 447.55 T (-numbered) 488.02 447.55 T (display) 72 433.55 T (. Xwinjig listens on this port, and then connects to the real X serv) 105.89 433.55 T (er on the standard port.) 420.01 433.55 T (The) 90 417.55 T (X) 111.76 417.55 T (serv) 123.52 417.55 T (er) 143.33 417.55 T (has) 155.76 417.55 T (an) 174.85 417.55 T (authentication) 189.28 417.55 T (mechanism,) 260.37 417.55 T (and) 321.13 417.55 T (xwinjig) 341.55 417.55 T (must) 381.32 417.55 T (mimic) 407.76 417.55 T (or) 441.53 417.55 T (circumv) 454.63 417.55 T (ent) 493.77 417.55 T (it.) 511.53 417.55 T (W) 524.3 417.55 T (e) 534.67 417.55 T (pro) 72 403.55 T (vide) 87.82 403.55 T (proof) 111.77 403.55 T (of) 141.05 403.55 T (authentication) 154.34 403.55 T (by) 225.62 403.55 T (reading) 240.9 403.55 T (the) 280.18 403.55 T (user\325) 298.13 403.55 T (s) 321.46 403.55 T (~/.Xauthority) 329.42 403.55 T (\336le) 397.53 403.55 T (and) 416.16 403.55 T (sending) 436.77 403.55 T (the) 477.39 403.55 T (appropri-) 495.35 403.55 T (ate) 72 389.55 T (authorization) 90.47 389.55 T (\322cookie\323) 158.27 389.55 T (to) 205.4 389.55 T (the) 219.22 389.55 T (serv) 238.36 389.55 T (er) 258.17 389.55 T (.) 266.83 389.55 T (W) 274.31 389.55 T (e) 284.68 389.55 T (circumv) 294.49 389.55 T (ent) 333.63 389.55 T (the) 352.78 389.55 T (authentication) 371.92 389.55 T (by) 444.39 389.55 T (disabling) 460.87 389.55 T (access) 509.35 389.55 T (control checking on the serv) 72 375.55 T (er \050by e) 207.79 375.55 T (x) 244.26 375.55 T (ecuting the command:) 250.08 375.55 T 3 F (xhost +) 359.74 375.55 T 0 F (\051.) 410.14 375.55 T 2 14 Q (4.2 X-W) 72 346.22 T (indo) 121.52 346.22 T (w T) 147.84 346.22 T (ests) 169.5 346.22 T 0 12 Q (In) 72 325.55 T (testing) 85.61 325.55 T (the) 121.24 325.55 T (X-W) 139.52 325.55 T (indo) 163.03 325.55 T (w) 184.06 325.55 T (serv) 196.35 325.55 T (er) 216.16 325.55 T (and) 229.1 325.55 T (applications,) 250.05 325.55 T (we) 314.66 325.55 T (used) 332.27 325.55 T (a) 357.89 325.55 T (combination) 366.84 325.55 T (of) 430.45 325.55 T (four) 444.07 325.55 T (dif) 467.68 325.55 T (ferent) 480.71 325.55 T (v) 512.32 325.55 T (aria-) 518.02 325.55 T (tions) 72 311.55 T (of) 99.3 311.55 T (random) 113.26 311.55 T (input) 153.88 311.55 T (streams.) 182.52 311.55 T (The) 226.14 311.55 T (\336rst) 248.76 311.55 T (tw) 271.39 311.55 T (o) 283.27 311.55 T (techniques) 293.24 311.55 T (are) 348.52 311.55 T (used) 367.14 311.55 T (to) 393.1 311.55 T (test) 406.39 311.55 T (both) 427.02 311.55 T (the) 452.32 311.55 T (serv) 470.95 311.55 T (er) 490.76 311.55 T (and) 504.05 311.55 T (the) 525.34 311.55 T (applications,) 72 297.55 T (whereas) 136.3 297.55 T (the) 178.91 297.55 T (last) 196.88 297.55 T (tw) 216.85 297.55 T (o) 228.73 297.55 T (are) 238.04 297.55 T (used) 255.99 297.55 T (to) 281.29 297.55 T (test) 293.93 297.55 T (only) 313.9 297.55 T (the) 338.54 297.55 T (applications.) 356.51 297.55 T (Each) 420.8 297.55 T (input) 448.1 297.55 T (type) 476.07 297.55 T (is) 500.04 297.55 T (closer) 511.34 297.55 T (to) 72 283.55 T (v) 84.42 283.55 T (alid) 90.12 283.55 T (input) 111.2 283.55 T (than) 138.96 283.55 T (the) 162.71 283.55 T (pre) 180.46 283.55 T (vious) 195.48 283.55 T (one) 224.57 283.55 T (\050and) 244.98 283.55 T (therefore) 269.39 283.55 T (potentially) 315.78 283.55 T (tests) 370.2 283.55 T (deeper) 394.62 283.55 T (layers) 429.68 283.55 T (of) 461.42 283.55 T (the) 474.5 283.55 T (input) 492.25 283.55 T (pro-) 520.01 283.55 T (cessing) 72 269.55 T (code\051.) 110.9 269.55 T (The) 144.13 269.55 T (last) 166.36 269.55 T (technique) 186.6 269.55 T (listed) 236.83 269.55 T (belo) 266.41 269.55 T (w) 286.77 269.55 T (is) 299.01 269.55 T (important) 310.59 269.55 T (because) 360.83 269.55 T (it) 402.38 269.55 T (simulates) 412.63 269.55 T (a) 461.54 269.55 T (user) 470.44 269.55 T (randomly) 494 269.55 T (using) 72 255.55 T (the) 101.7 255.55 T (k) 120.07 255.55 T (e) 125.95 255.55 T (yboard) 131.1 255.55 T (and) 168.12 255.55 T (mouse.) 189.15 255.55 T (Each) 227.18 255.55 T (application) 254.87 255.55 T (w) 311.9 255.55 T (as) 320.44 255.55 T (tested) 334.14 255.55 T (with) 365.83 255.55 T (either) 390.87 255.55 T (\050a\051) 421.89 255.55 T (a) 438.91 255.55 T (combination) 447.94 255.55 T (of) 511.64 255.55 T (the) 525.34 255.55 T (T) 72 241.55 T (ypes 1-4 types of random input, or \050b\051 only T) 78.37 241.55 T (ype 4 \050le) 294.72 241.55 T (g) 336.53 241.55 T (al\051 random input.) 342.47 241.55 T (1.) 72 222.55 T (Completely) 90 222.55 T (Random) 149.46 222.55 T (Messages:) 193.58 222.55 T (xwinjig) 247.02 222.55 T (concocts) 287.15 222.55 T (a) 332.59 222.55 T (random) 341.37 222.55 T (series) 381.48 222.55 T (of) 412.26 222.55 T (bytes) 425.7 222.55 T (and) 454.49 222.55 T (ships) 475.27 222.55 T (it) 503.39 222.55 T (of) 513.52 222.55 T (f) 523.22 222.55 T (to) 530.66 222.55 T (the serv) 90 208.55 T (er or the client in a message.) 127.48 208.55 T (2.) 72 189.55 T (Garbled) 90 189.55 T (Messages:) 131.66 189.55 T (xwinjig) 184.65 189.55 T (randomly) 224.33 189.55 T (inserts,) 273.33 189.55 T (deletes,) 310.67 189.55 T (or) 350 189.55 T (modi\336es) 363 189.55 T (parts) 407.34 189.55 T (of) 433.68 189.55 T (the) 446.68 189.55 T (message) 464.35 189.55 T (stream) 508.01 189.55 T (between the application and serv) 90 175.55 T (er) 247.12 175.55 T (.) 255.78 175.55 T (3.) 72 156.55 T (Random) 90 156.55 T (Ev) 133.77 156.55 T (ents:) 146.93 156.55 T (xwinjig) 172.7 156.55 T (k) 212.48 156.55 T (eeps) 218.36 156.55 T (track) 242.79 156.55 T (of) 269.88 156.55 T (message) 282.98 156.55 T (boundaries) 326.74 156.55 T (de\336ned) 382.5 156.55 T (by) 420.93 156.55 T (the) 436.04 156.55 T (X) 453.81 156.55 T (Protocol) 465.58 156.55 T (Refer-) 509.35 156.55 T (ence) 90 139.35 T (Manual[5].) 115.9 139.35 T (xwinjig) 173.47 139.35 T (randomly) 214.06 139.35 T (inserts) 263.97 139.35 T (e) 299.22 139.35 T (v) 304.24 139.35 T (ents) 310.07 139.35 T 0 9.6 Q (2) 329.4 144.15 T 0 12 Q (that) 338.11 139.35 T (are) 360.03 139.35 T (of) 378.6 139.35 T (the) 392.51 139.35 T (proper) 411.09 139.35 T (size) 446.33 139.35 T (and) 468.9 139.35 T (ha) 490.15 139.35 T (v) 501.24 139.35 T (e) 507.06 139.35 T (v) 516.3 139.35 T (alid) 522 139.35 T 72 120 540 135 C 0 0 0 1 0 0 0 1 K 81 133 225 133 2 L 0.5 H 2 Z 0 X N -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (1.) 90 113.33 T 1 F (Xwinjig) 100 113.33 T 0 F (actually) 133.46 113.33 T (has) 167.45 113.33 T (tw) 183.12 113.33 T (o) 193.02 113.33 T (implementations) 200.36 113.33 T (\050called) 269.36 113.33 T 1 F (xjig) 298.91 113.33 T 0 F (and) 316.24 113.33 T 1 F (winjig) 333.02 113.33 T 0 F (\051) 358.03 113.33 T (whose) 363.7 113.33 T (combined) 391.58 113.33 T (features) 433.36 113.33 T (are) 467.35 113.33 T (call) 481.89 113.33 T (xwin-) 498.67 113.33 T (jig. This section reports on the combined results of testing with these tw) 102 101.33 T (o tools.) 389.94 101.33 T (2.) 90 89.33 T (An e) 100 89.33 T (v) 118.91 89.33 T (ent is a message sent by the serv) 123.76 89.33 T (er to the client to indicate that something of interest to the client) 253.31 89.33 T (happened at the serv) 102 77.33 T (er side. E.g., an e) 183.77 77.33 T (v) 252.39 77.33 T (ent is sent each time a k) 257.24 77.33 T (e) 352.68 77.33 T (y is pressed.) 356.97 77.33 T 102.73 459.35 149 470.8 C 0 0 0 1 0 0 0 1 K 0 12 Q 0 X (6000) 103.25 461.55 T 1 F (N) 140.26 461.55 T 0 F (+) 130.25 461.55 T -45 -45 657 837 C 189.48 459.05 198.48 470.3 C 0 0 0 1 0 0 0 1 K 1 12 Q 0 X (N) 189.73 461.55 T -45 -45 657 837 C 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "16" 16 %%Page: "17" 17 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 17) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 12 Q (opcodes) 90 712 T (\050in) 133.09 712 T (the) 150.19 712 T (range) 168.62 712 T (2) 199.03 712 T (to) 208.8 712 T (34\051.) 221.9 712 T (The) 244.66 712 T (sequence) 267.08 712 T (number) 314.83 712 T (,) 351.01 712 T (time) 357.77 712 T (stamp,) 382.88 712 T (and) 418.31 712 T (payload) 439.4 712 T (may) 481.16 712 T (be) 505.59 712 T (ran-) 520.68 712 T (dom.) 90 698 T (4.) 72 679 T (Le) 90 679 T (g) 102.48 679 T (al) 108.42 679 T (Ev) 120.49 679 T (ents:) 133.64 679 T (These) 159.72 679 T (are) 191.78 679 T (protocol) 209.84 679 T (conformant) 253.24 679 T (messages) 311.97 679 T (that) 360.7 679 T (are) 382.11 679 T (logically) 400.17 679 T (correct) 445.57 679 T (indi) 482.29 679 T (vidually) 500.66 679 T (and) 90 665 T (in) 110.88 665 T (sequence.) 123.76 665 T (These) 174.29 665 T (e) 206.5 665 T (v) 211.53 665 T (ents) 217.35 665 T (ha) 240.23 665 T (v) 251.32 665 T (e) 257.14 665 T (v) 266.02 665 T (alid) 271.72 665 T (v) 293.27 665 T (alues) 298.97 665 T (for) 327.18 665 T (such) 344.72 665 T (things) 370.27 665 T (as) 403.16 665 T (X-Y) 416.7 665 T (coordinates) 441.58 665 T (within) 500.45 665 T (a) 534.67 665 T (windo) 90 651 T (w) 119.7 651 T (.) 127.58 651 T (Information) 133.52 651 T (such) 193.78 651 T (as) 218.71 651 T (windo) 231.64 651 T (w) 261.34 651 T (geometry) 272.94 651 T (,) 317.48 651 T (parent/child) 323.42 651 T (relationships,) 383.68 651 T (e) 450.95 651 T (v) 455.97 651 T (ent) 461.79 651 T (time) 479.39 651 T (stamps,) 503.66 651 T (and) 90 637 T (sequence) 110.76 637 T (numbers) 158.17 637 T (are) 202.93 637 T (obtained) 221.01 637 T (by) 265.77 637 T (monitoring) 281.2 637 T (client/serv) 337.97 637 T (er) 387.78 637 T (traf) 400.53 637 T (\336c) 416.89 637 T (and) 432.32 637 T (are) 453.08 637 T (used) 471.16 637 T (to) 496.59 637 T (gener-) 509.35 637 T (ate these e) 90 623 T (v) 139.68 623 T (ents.) 145.5 623 T (The) 90 607 T (xwinjig) 112.11 607 T (program) 152.23 607 T (has) 196.33 607 T (options) 215.78 607 T (to) 254.57 607 T (control) 267.35 607 T (the) 304.8 607 T (rate) 322.91 607 T (of) 344.35 607 T (injection) 357.79 607 T (of) 403.24 607 T (e) 416.68 607 T (v) 421.71 607 T (ents,) 427.53 607 T (the) 453.31 607 T (frequenc) 471.43 607 T (y) 513.22 607 T (and) 522.67 607 T (method) 72 593 T (of) 110.82 593 T (randomizing) 123.63 593 T (the) 187.11 593 T (e) 204.59 593 T (v) 209.62 593 T (ent) 215.44 593 T (stream,) 232.92 593 T (the) 270.73 593 T (direction) 288.22 593 T (of) 333.7 593 T (operation) 346.51 593 T (\050client) 394.65 593 T (to) 428.13 593 T (serv) 440.29 593 T (er) 460.1 593 T (or) 472.24 593 T (vice) 485.05 593 T (v) 507.86 593 T (ersa\051,) 513.68 593 T (and the e) 72 579 T (v) 115.02 579 T (ent types \050k) 120.84 579 T (e) 176.71 579 T (yboard and mouse e) 181.86 579 T (v) 277.87 579 T (ents only) 283.69 579 T (, or all e) 326.58 579 T (v) 365.6 579 T (ents\051.) 371.42 579 T 2 14 Q (4.3 X-W) 72 549.67 T (indo) 121.52 549.67 T (w T) 147.84 549.67 T (est Results) 169.5 549.67 T 0 12 Q (W) 72 529 T (e) 82.37 529 T (tested) 91.29 529 T (the) 122.87 529 T (v) 141.13 529 T (ersion) 146.95 529 T (11R5) 179.87 529 T (X-W) 209.46 529 T (indo) 232.97 529 T (w) 254.01 529 T (serv) 266.26 529 T (er) 286.07 529 T (on) 298.99 529 T (the) 314.58 529 T (SunOS) 332.83 529 T (and) 370.43 529 T (Ultrix) 391.35 529 T (systems;) 423.61 529 T (the) 468.54 529 T (X-W) 486.79 529 T (indo) 510.3 529 T (w) 531.34 529 T (applications) 72 515 T (were) 133.75 515 T (tested) 160.82 515 T (on) 192.57 515 T (SunOS.) 208.33 515 T (T) 249.09 515 T (esting) 255.58 515 T (w) 288.01 515 T (as) 296.55 515 T (done) 310.3 515 T (only) 337.39 515 T (on) 362.48 515 T (these) 378.23 515 T (fe) 406.65 515 T (w) 415.67 515 T (systems) 428.09 515 T (because) 469.85 515 T (of) 511.58 515 T (the) 525.34 515 T (signi\336cant) 72 501 T (time) 126.51 501 T (it) 152.35 501 T (tak) 163.53 501 T (es) 178.08 501 T (to) 192.58 501 T (complete) 206.43 501 T (this) 254.92 501 T (type) 276.77 501 T (of) 301.94 501 T (testing.) 316.45 501 T (The) 355.96 501 T (X-W) 379.12 501 T (indo) 402.63 501 T (w) 423.67 501 T (application) 436.84 501 T (programs) 494.68 501 T (include) 72 487 T (ones) 112.01 487 T (distrib) 138.69 487 T (uted) 169.12 487 T (by) 194.47 487 T (the) 211.16 487 T (v) 230.5 487 T (endor) 236.32 487 T (,) 263.17 487 T (locally) 270.85 487 T (written,) 308.2 487 T (freely) 349.88 487 T (distrib) 382.55 487 T (uted,) 412.98 487 T (and) 441.33 487 T (purchased) 463.34 487 T (from) 516.67 487 T (third party v) 72 473 T (endors.) 131.15 473 T 2 14 Q (4.3.1 Quantitati) 72 443.67 T (v) 165.59 443.67 T (e Results) 172.45 443.67 T 0 12 Q (The) 72 423 T (results) 94.68 423 T (of) 130.03 423 T (our) 144.04 423 T (tests) 164.06 423 T (on) 189.41 423 T (X-W) 205.43 423 T (indo) 228.94 423 T (w) 249.97 423 T (applications) 262.66 423 T (are) 324.67 423 T (gi) 343.34 423 T (v) 352.38 423 T (en) 358.2 423 T (in) 373.54 423 T (T) 386.9 423 T (able) 393.27 423 T (5.) 416.26 423 T (The) 429.28 423 T (\336rst) 451.96 423 T (conclusion) 474.65 423 T (to) 530.66 423 T (dra) 72 409 T (w) 87.14 409 T (is) 99.04 409 T (that) 110.27 409 T (the) 131.49 409 T (fuzz) 149.38 409 T (testing) 173.26 409 T (techniques) 208.49 409 T (are) 263.05 409 T (ef) 280.92 409 T (fecti) 289.95 409 T (v) 310.97 409 T (e) 316.79 409 T (for) 325.35 409 T (testing) 342.57 409 T (programs) 377.8 409 T (based) 426.35 409 T (on) 456.9 409 T (graphical) 472.13 409 T (user) 520.01 409 T (interf) 72 395 T (aces.) 97.87 395 T (This) 124.59 395 T (result) 148.99 395 T (should) 178.71 395 T (encourage) 213.78 395 T (this) 266.15 395 T (type) 286.55 395 T (of) 310.28 395 T (testing) 323.34 395 T (on) 358.4 395 T (other) 373.47 395 T (windo) 401.19 395 T (w-based) 430.89 395 T (systems,) 473.94 395 T (such) 518 395 T (as the Macintosh and PC.) 72 381 T (The) 90 365 T (test) 112.03 365 T (inputs) 132.07 365 T (of) 164.78 365 T (T) 178.15 365 T (ypes) 184.52 365 T (1) 209.89 365 T (and) 219.26 365 T (2) 239.96 365 T (represent) 249.33 365 T (some) 296.68 365 T (f) 325.39 365 T (ailure) 329.26 365 T (in) 359.96 365 T (the) 372.66 365 T (X) 390.7 365 T (serv) 402.73 365 T (er) 422.55 365 T (or) 435.24 365 T (its) 448.61 365 T (associate) 463.32 365 T (librar-) 510.01 365 T (ies.) 72 351 T (It) 91.68 351 T (may) 102.36 351 T (be) 126.37 351 T (reasonable) 141.04 351 T (to) 195.7 351 T (ar) 208.38 351 T (gue) 217.49 351 T (that) 238.16 351 T (these) 259.51 351 T (errors) 287.51 351 T (are) 318.84 351 T (unlik) 336.84 351 T (ely) 361.39 351 T (,) 375.28 351 T (or) 381.62 351 T (that) 394.97 351 T (if) 416.31 351 T (the) 426.99 351 T (y) 441.47 351 T (occur) 450.82 351 T (,) 476.99 351 T (the) 483.34 351 T (applica-) 501.35 351 T (tion) 72 337 T (programs) 96.15 337 T (cannot) 146.95 337 T (do) 184.42 337 T (much) 201.89 337 T (to) 234.04 337 T (counteract) 248.85 337 T (them.) 304.3 337 T (Good) 336.78 337 T (softw) 368.92 337 T (are) 395.47 337 T (design) 415.59 337 T (practice) 452.4 337 T (says) 495.86 337 T (that) 522 337 T (programs) 72 323 T (should) 121.05 323 T (ha) 156.78 323 T (v) 167.86 323 T (e) 173.68 323 T (reasonable) 182.74 323 T (error) 237.77 323 T (checking) 264.81 323 T (on) 311.86 323 T (all) 327.58 323 T (e) 343.3 323 T (xternal) 348.45 323 T (interf) 385.5 323 T (aces;) 411.37 323 T (in) 439.08 323 T (case) 452.14 323 T (of) 476.52 323 T (a) 490.24 323 T (crash,) 499.29 323 T (at) 531.34 323 T (least) 72 309 T (these) 97.16 309 T (checks) 124.97 309 T (will) 160.79 309 T (help) 182.62 309 T (localize) 206.44 309 T (the) 246.92 309 T (problem) 264.75 309 T (\050and) 307.9 309 T (help) 332.39 309 T (con) 356.21 309 T (vince) 373.06 309 T (the) 402.21 309 T (programmer) 420.03 309 T (that) 482.51 309 T (it) 503.67 309 T (is) 513.5 309 T (not) 524.66 309 T (in their o) 72 295 T (wn code\051. These checks can result in better b) 115.03 295 T (ug reports to the softw) 330.4 295 T (are v) 438.26 295 T (endor) 461.74 295 T (.) 488.4 295 T (The) 90 279 T (T) 112.75 279 T (ype) 119.12 279 T (3) 140.54 279 T (and) 150.63 279 T (4) 172.04 279 T (inputs) 182.13 279 T (contain) 215.56 279 T (enough) 254.98 279 T (v) 294.4 279 T (alid) 300.1 279 T (data) 322.19 279 T (that) 346.27 279 T (the) 368.36 279 T (y) 382.84 279 T (tak) 392.93 279 T (e) 407.48 279 T (us) 416.89 279 T (past) 431.65 279 T (most) 455.07 279 T (of) 482.5 279 T (the) 496.59 279 T (basic) 515.34 279 T (checks) 72 265 T (in) 108.58 265 T (the) 121.84 265 T (X) 140.43 265 T (library) 153.01 265 T (.) 184.23 265 T (The) 191.15 265 T (T) 213.74 265 T (ype) 220.11 265 T (4) 241.36 265 T (test) 251.29 265 T (input) 271.88 265 T (produced) 300.48 265 T (what) 349.05 265 T (is) 376.3 265 T (probably) 388.23 265 T (the) 434.82 265 T (most) 453.41 265 T (condemning) 480.67 265 T (result.) 72 251 T (Gi) 106.81 251 T (v) 118.51 251 T (en) 124.33 251 T (le) 140.8 251 T (gitimate) 149.29 251 T (input) 193.76 251 T (e) 223.58 251 T (v) 228.61 251 T (ent) 234.43 251 T (streams,) 254.24 251 T (more) 299.04 251 T (than) 328.85 251 T (25%) 354.65 251 T (of) 381.8 251 T (the) 396.93 251 T (programs) 416.74 251 T (tested) 467.21 251 T (crashed.) 500.35 251 T (Application) 72 237 T (programs) 132.57 237 T (from) 181.8 237 T (all) 209.04 237 T (sources) 224.95 237 T (f) 264.84 237 T (ailed) 268.72 237 T (on) 295.95 237 T (this) 311.86 237 T (type) 333.11 237 T (of) 357.68 237 T (input.) 371.58 237 T (Errors) 403.16 237 T (of) 437.06 237 T (this) 450.96 237 T (type) 472.21 237 T (are) 496.78 237 T (com-) 515.34 237 T (mon;) 72 223 T (most) 100.16 223 T (users) 126.99 223 T (ha) 155.15 223 T (v) 166.23 223 T (e,) 172.05 223 T (at) 183.87 223 T (some) 196.03 223 T (time,) 224.85 223 T (selected) 252.68 223 T (lar) 294.82 223 T (ge) 307.27 223 T (amounts) 322.08 223 T (of) 366.24 223 T (te) 379.73 223 T (xt) 388.21 223 T (from) 401.04 223 T (a) 427.86 223 T (windo) 436.68 223 T (w) 466.38 223 T (and) 478.54 223 T (acciden-) 499.36 223 T (tally \322pasted\323 it into the wrong windo) 72 209 T (w) 253.02 209 T (.) 260.9 209 T (F) 90 193 T (or) 96.49 193 T (the) 109.72 193 T (X-W) 127.63 193 T (indo) 151.13 193 T (w) 172.17 193 T (system,) 184.07 193 T (the) 223.64 193 T (\322hang\323) 241.54 193 T (results) 278.77 193 T (may) 313.33 193 T (be) 337.23 193 T (more) 351.8 193 T (serious) 379.7 193 T (than) 416.93 193 T (the) 440.83 193 T (crashes.) 458.73 193 T (In) 500.28 193 T (man) 513.52 193 T (y) 534 193 T (cases,) 72 179 T (an) 103.88 179 T (X-W) 118.77 179 T (indo) 142.27 179 T (w) 163.31 179 T (application) 175.54 179 T (will) 232.42 179 T (hang) 254.65 179 T (while) 281.54 179 T (it) 311.77 179 T (is) 322 179 T (has) 333.56 179 T (e) 353.12 179 T (xclusi) 358.27 179 T (v) 386.63 179 T (e) 392.45 179 T (control) 401.34 179 T (o) 438.9 179 T (v) 444.72 179 T (er) 450.54 179 T (input) 463.42 179 T (\050k) 491.65 179 T (e) 501.53 179 T (yboard) 506.68 179 T (and) 72 165 T (mouse\051.) 92.13 165 T (This) 133.26 165 T (means) 157.4 165 T (that) 190.87 165 T (the) 211.67 165 T (user) 229.13 165 T (cannot) 251.93 165 T (select) 286.73 165 T (another) 316.85 165 T (windo) 355.64 165 T (w) 385.34 165 T (to) 396.81 165 T (terminate) 408.95 165 T (the) 457.08 165 T (hung) 474.55 165 T (applica-) 501.35 165 T (tion; the user must use another w) 72 151 T (orkstation and remotely kill the application.) 230.53 151 T 2 14 Q (4.3.2 Causes of Crashes/Hangs) 72 121.67 T 0 12 Q (W) 72 101 T (e) 82.37 101 T (identi\336ed) 91.22 101 T (the) 140.09 101 T (cause) 158.28 101 T (of) 188.46 101 T (the) 201.98 101 T (f) 220.17 101 T (ailures) 224.05 101 T (of) 259.57 101 T (se) 273.09 101 T (v) 282.79 101 T (eral) 288.61 101 T (of) 310.12 101 T (the) 323.64 101 T (X-W) 341.84 101 T (indo) 365.34 101 T (w) 386.38 101 T (applications) 398.57 101 T (that) 460.09 101 T (we) 481.62 101 T (tested) 499.14 101 T (in) 530.66 101 T (this) 72 87 T (study) 93.2 87 T (.) 118.43 87 T (In) 125.29 87 T (this) 139.15 87 T (section,) 160.35 87 T (we) 201.21 87 T (describe) 219.06 87 T (some) 262.91 87 T (of) 292.11 87 T (the) 305.96 87 T (errors) 324.49 87 T (that) 356.34 87 T (we) 378.2 87 T (found.) 396.05 87 T (In) 430.91 87 T (general,) 444.77 87 T (the) 486.95 87 T (type) 505.48 87 T (of) 530 87 T FMENDPAGE %%EndPage: "17" 17 %%Page: "18" 18 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 18) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 12 Q (X Utility) 107.5 685 T (Input Data Stream T) 219.17 704 T (ypes \050described in Section) 316.52 704 T (4.2\051) 445.84 704 T 0 10 Q (Combination Input \050A Mix of T) 171.4 679.33 T (ypes 1-4\051) 298.11 679.33 T (Le) 374.98 679.33 T (g) 385.38 679.33 T (al Ev) 390.33 679.33 T (ents Only \050T) 411.01 679.33 T (ype) 460.76 679.33 T (4\051) 477.7 679.33 T 0 9 Q (bitmap) 99 658 T 4 F (\267\270\271) 242.86 658 T (\271) 426.95 658 T 0 F (emacs) 99 639 T 4 F (\267\271 \302) 240.36 639 T 0 F (ghostvie) 99 620 T (w) 129.28 620 T 4 F (\302) 249.95 620 T 0 F (idra) 99 601 T (w) 112.86 601 T 4 F (\302) 249.95 601 T (\303) 426.95 601 T 0 F (mosaic) 99 582 T 4 F (\303) 426.95 582 T 0 F (mxrn) 99 563 T 4 F (\302) 249.95 563 T 0 F (netscape) 99 544 T 4 F (\270) 249.95 544 T (\271) 426.95 544 T 0 F (puzzle) 99 525 T 4 F (\302) 249.95 525 T 0 F (rxvt) 99 506 T 4 F (\302) 249.95 506 T (\303) 426.95 506 T 0 F (xboard) 99 487 T 4 F (\302) 249.95 487 T 0 F (xcalc) 99 468 T (xclipboard) 99 449 T 4 F (\303) 426.95 449 T 0 F (xclock) 99 430 T (xconsole) 99 411 T (xcutsel) 99 392 T 4 F (\302) 249.95 392 T 0 F (xditvie) 99 373 T (w) 123.78 373 T 4 F (\302) 249.95 373 T 0 F (xdvi) 99 354 T 4 F (\301\302\303) 242.86 354 T 0 F (x) 99 335 T (edit) 103.36 335 T (x) 99 316 T (e) 103.36 316 T (v) 107.14 316 T (x\336g) 99 297 T 4 F (\301\303) 246.41 297 T 0 F (xfontsel) 99 278 T (xg) 99 259 T (as) 107.96 259 T (xgc) 99 240 T 4 F (\302) 249.95 240 T 0 F (xmag) 99 221 T 4 F (\302) 249.95 221 T 0 F (xman) 99 202 T (xmh) 99 183 T (xminesweep) 99 164 T (xnek) 99 145 T (o) 116.41 145 T 2 12 Q (T) 140.96 124 T (able 5: List of X A) 147.86 124 T (pplications T) 241.22 124 T (ested and Results of Those T) 307.14 124 T (ests) 452.38 124 T 4 F (\222\266\267\270\271) 84.03 110 T 2 F (= crashed on T) 125.19 110 T (ype 1, 2, 3, or 4 input.) 200.81 110 T 4 F (\300\301\302\303) 314.49 110 T 2 F (= hung on T) 355.65 110 T (ype 1, 2, 3, or 4 input.) 417.29 110 T (When mor) 107.71 96 T (e than one combination of input types caused a crash, all ar) 162.49 96 T (e listed.) 465.62 96 T (T) 240.04 82 T (ests run on SunOS 4.1.3.) 246.94 82 T 93 719.75 93 138.25 2 L V 0.5 H 0 Z N 165 720.25 165 137.75 2 L V N 342 694.25 342 137.75 2 L V N 519 719.75 519 138.25 2 L V N 92.75 720 519.25 720 2 L V N 164.75 694 519.25 694 2 L V N 93.25 671.25 518.75 671.25 2 L V N 93.25 668.75 518.75 668.75 2 L V N 92.75 138 519.25 138 2 L V N FMENDPAGE %%EndPage: "18" 18 %%Page: "19" 19 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 19) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 12 Q (programming errors that we found were similar to those found in the basic tests.) 72 343 T (The) 90 327 T (\322xpaint\323) 112.73 327 T (application) 157.45 327 T (crashes) 214.84 327 T (because) 254.22 327 T (of) 296.27 327 T (a) 310.33 327 T (common) 319.73 327 T (error) 365.79 327 T (with) 393.17 327 T (pointers:) 418.58 327 T (dereferencing) 464.64 327 T (a) 534.67 327 T (NULL) 72 313 T (pointer) 107.19 313 T (.) 140.53 313 T (During) 146.73 313 T (input,) 183.93 313 T (an) 214.81 313 T (X) 229.34 313 T (library) 241.2 313 T (function) 276.4 313 T (returns) 319.6 313 T (a) 356.12 313 T (windo) 364.65 313 T (w) 394.35 313 T (with) 406.22 313 T (zero) 430.76 313 T (height.) 454.61 313 T (The) 490.81 313 T (struc-) 512.68 313 T (ture) 72 299 T (of) 94.14 299 T (the) 107.61 299 T (subsequent) 125.74 299 T (code) 182.55 299 T (is) 208.68 299 T (a) 220.16 299 T (wkw) 225.3 299 T (ard.) 248.51 299 T (There) 270.31 299 T (are) 301.77 299 T (man) 319.9 299 T (y) 340.38 299 T (places) 349.86 299 T (where) 383.32 299 T (the) 416.11 299 T (pointer) 434.25 299 T (might) 471.72 299 T (be) 503.2 299 T (used) 518 299 T (and) 72 285 T (each) 92.7 285 T (of) 118.06 285 T (these) 131.43 285 T (\050e) 159.46 285 T (xcept) 168.61 285 T (one!\051) 197.98 285 T (has) 226.67 285 T (a) 246.04 285 T (check) 254.74 285 T (for) 286.1 285 T (NULL.) 303.46 285 T (The) 341.83 285 T (code) 363.86 285 T (structure) 389.89 285 T (has) 435.26 285 T (the) 454.63 285 T (appearance) 472.67 285 T (of) 530 285 T (e) 72 271 T (v) 77.03 271 T (olving with incremental \336x) 82.79 271 T (es rather than systematic o) 212.94 271 T (v) 340.07 271 T (erhaul.) 345.89 271 T (Another) 90 255 T (e) 132.12 255 T (xample) 137.26 255 T (of) 175.38 255 T (not) 188.17 255 T (checking) 206.3 255 T (for) 252.41 255 T (NULL) 269.2 255 T (v) 303.98 255 T (alues) 309.68 255 T (can) 337.13 255 T (be) 356.58 255 T (found) 370.7 255 T (in) 401.49 255 T (\322xsno) 413.62 255 T (w\323,) 441.31 255 T (an) 461.1 255 T (X) 475.22 255 T (application) 486.67 255 T (that) 72 241 T (creates) 92.91 241 T (sno) 129.13 241 T (w\337ak) 145.5 241 T (es) 172.04 241 T (on) 184.95 241 T (the) 199.86 241 T (screen) 217.43 241 T (and) 250.99 241 T (drops) 271.22 241 T (them) 300.8 241 T (to) 327.7 241 T (w) 336.74 241 T (ards) 345.28 241 T (the) 368.18 241 T (bottom.) 385.76 241 T (The) 425.67 241 T (b) 447.24 241 T (ug) 453 241 T (in) 467.91 241 T (this) 480.16 241 T (utility) 500.41 241 T (is) 532 241 T (that) 72 227 T (it) 94.35 227 T (does) 105.37 227 T (not) 131.71 227 T (suf) 151.4 227 T (\336ciently) 165.76 227 T (check) 209.44 227 T (the) 241.77 227 T (return) 260.79 227 T (v) 293.79 227 T (alues) 299.49 227 T (from) 328.5 227 T (X) 356.17 227 T (library) 369.18 227 T (functions.) 405.52 227 T (XCreateRe) 457.54 227 T (gion\050\051) 510.67 227 T (returns) 72 213 T (a) 108.95 213 T (NULL) 117.9 213 T (pointer) 153.52 213 T (that) 191.14 213 T (is) 212.76 213 T (subsequently) 224.39 213 T (passed) 290.68 213 T (to) 326.3 213 T (XPointInRe) 339.26 213 T (gion\050\051.) 396.42 213 T (Man) 432.37 213 T (y) 454.18 213 T (of) 463.81 213 T (the) 477.43 213 T (X) 495.72 213 T (library) 508.01 213 T (functions) 72 199 T (\050including) 119.75 199 T (XPointInRe) 172.16 199 T (gion\051) 229.32 199 T (do) 257.73 199 T (not) 272.81 199 T (check) 291.23 199 T (their) 322.3 199 T (ar) 347.38 199 T (guments) 356.48 199 T (for) 400.23 199 T (v) 417.31 199 T (alidity) 423.01 199 T (in) 456.76 199 T (the) 469.18 199 T (interests) 486.93 199 T (of) 530 199 T (performance.) 72 185 T (\050While) 139.58 185 T (the) 176.85 185 T (client) 195.46 185 T (side) 226.07 185 T (X) 249.35 185 T (libraries) 261.96 185 T (scrupulously) 305.23 185 T (check) 370.51 185 T (message) 402.44 185 T (from) 447.04 185 T (the) 474.32 185 T (serv) 492.92 185 T (er) 512.74 185 T (for) 526.01 185 T (errors,) 72 171 T (the) 106.89 171 T (y) 121.38 171 T (trust) 131.29 171 T (the) 156.53 171 T (client) 175.1 171 T (\050of) 205.68 171 T (which) 223.58 171 T (the) 256.81 171 T (y) 271.3 171 T (are) 281.2 171 T (a) 299.77 171 T (part\051) 309 171 T (to) 335.57 171 T (pass) 348.81 171 T (in) 373.38 171 T (correct) 386.63 171 T (ar) 423.85 171 T (guments) 432.96 171 T (and) 477.53 171 T (to) 498.77 171 T (check) 512.02 171 T (return v) 72 157 T (alues.\051) 109.36 157 T 0 9 Q (xpaint) 99 658 T 4 F (\270\271 \302) 240.36 658 T 0 F (xpbif) 99 639 T (f) 117.77 639 T (xpostit) 99 620 T 4 F (\303) 426.95 620 T 0 F (xsno) 99 601 T (w) 115.78 601 T 4 F (\270) 249.95 601 T 0 F (xspread) 99 582 T 4 F (\302\303) 246.41 582 T 0 F (xterm) 99 563 T 4 F (\301) 249.95 563 T 0 F (xtv) 99 544 T 4 F (\302) 249.95 544 T (\303) 426.95 544 T 0 F (xv) 99 525 T 4 F (\301\303 \302) 240.36 525 T 0 F (xweather) 99 506 T 4 F (\267) 249.95 506 T (\271) 426.95 506 T 0 F (xxgdb) 99 487 T 4 F (\303) 426.95 487 T 0 F (# tested) 99 468 T (38) 249 468 T (38) 426 468 T (# crash/hang) 99 449 T (22) 249 449 T (10) 426 449 T (%) 99 430 T (58%) 245.25 430 T (26%) 422.25 430 T 0 12 Q (X Utility) 107.5 685 T (Input Data Stream T) 219.17 704 T (ypes \050described in Section) 316.52 704 T (4.2\051) 445.84 704 T 0 10 Q (Combination Input \050A Mix of T) 171.4 679.33 T (ypes 1-4\051) 298.11 679.33 T (Le) 374.98 679.33 T (g) 385.38 679.33 T (al Ev) 390.33 679.33 T (ents Only \050T) 411.01 679.33 T (ype) 460.76 679.33 T (4\051) 477.7 679.33 T 2 12 Q (T) 140.96 409 T (able 5: List of X A) 147.86 409 T (pplications T) 241.22 409 T (ested and Results of Those T) 307.14 409 T (ests) 452.38 409 T 4 F (\222\266\267\270\271) 84.03 395 T 2 F (= crashed on T) 125.19 395 T (ype 1, 2, 3, or 4 input.) 200.81 395 T 4 F (\300\301\302\303) 314.49 395 T 2 F (= hung on T) 355.65 395 T (ype 1, 2, 3, or 4 input.) 417.29 395 T (When mor) 107.71 381 T (e than one combination of input types caused a crash, all ar) 162.49 381 T (e listed.) 465.62 381 T (T) 240.04 367 T (ests run on SunOS 4.1.3.) 246.94 367 T 93 719.75 93 423.25 2 L V 0.5 H 0 Z N 165 720.25 165 422.75 2 L V N 342 694.25 342 422.75 2 L V N 519 719.75 519 423.25 2 L V N 92.75 720 519.25 720 2 L V N 164.75 694 519.25 694 2 L V N 93.25 671.25 518.75 671.25 2 L V N 93.25 668.75 518.75 668.75 2 L V N 92.75 480 519.25 480 2 L V N 92.75 423 519.25 423 2 L V N FMENDPAGE %%EndPage: "19" 19 %%Page: "20" 20 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 20) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 2 16 Q (5 MEMOR) 72 709.33 T (Y ALLOCA) 148.32 709.33 T (TION CALLS) 230.8 709.33 T 0 12 Q (W) 72 686 T (e) 82.37 686 T (applied) 91.12 686 T (our) 129.87 686 T (random) 149.29 686 T (testing) 189.38 686 T (techniques) 224.8 686 T (to) 279.55 686 T (the) 292.31 686 T (interf) 310.4 686 T (ace) 336.27 686 T (between) 355.68 686 T (application) 399.08 686 T (programs) 455.84 686 T (and) 504.58 686 T (the) 525.34 686 T (system) 72 672 T (call) 108.23 672 T (library) 128.46 672 T (.) 159.67 672 T (W) 165.57 672 T (e) 175.94 672 T (created) 184.16 672 T (a) 221.7 672 T (library) 229.93 672 T (that) 264.82 672 T (looks) 285.72 672 T (lik) 314.62 672 T (e) 327.17 672 T (the) 335.4 672 T (standard) 352.96 672 T (UNIX) 396.51 672 T (C) 429.4 672 T (library) 440.3 672 T (,) 471.51 672 T (b) 477.41 672 T (ut) 483.17 672 T (allo) 495.4 672 T (ws) 513.1 672 T (us) 529.33 672 T (to) 72 658 T (simulate) 85.46 658 T (error) 130.24 658 T (conditions.) 157.68 658 T (W) 214.8 658 T (e) 225.17 658 T (limited) 234.61 658 T (our) 272.74 658 T (e) 292.85 658 T (xperiment) 298 658 T (to) 350.78 658 T (replacing) 364.23 658 T (one) 413.01 658 T (f) 434.45 658 T (amily) 438.33 658 T (of) 469.78 658 T (library) 483.9 658 T (rou-) 520.01 658 T (tines:) 72 640.8 T (the) 102.49 640.8 T (dynamic) 121.63 640.8 T (memory) 167.44 640.8 T (allocation) 211.91 640.8 T (routines) 263.72 640.8 T 0 9.6 Q (1) 302.39 645.6 T 0 12 Q (.) 307.19 640.8 T (malloc\050\051) 314.67 640.8 T (is) 359.8 640.8 T (a) 372.29 640.8 T (C) 382.1 640.8 T (library) 394.58 640.8 T (function) 431.05 640.8 T (that) 475.53 640.8 T (allocates) 498.01 640.8 T (memory) 72 626.8 T (on) 115.26 626.8 T (the) 130.53 626.8 T (heap,) 148.46 626.8 T (e) 177.39 626.8 T (xtending) 182.53 626.8 T (the) 227.8 626.8 T (program\325) 245.73 626.8 T (s) 289.72 626.8 T (virtual) 297.66 626.8 T (address) 332.26 626.8 T (space) 371.52 626.8 T (if) 401.43 626.8 T (necessary) 412.03 626.8 T (.) 457.9 626.8 T (A) 464.17 626.8 T (zero) 476.1 626.8 T (\050NULL\051) 500.02 626.8 T (return) 72 612.8 T (v) 104.23 612.8 T (alue) 109.93 612.8 T (from) 133.49 612.8 T (malloc\050\051) 160.39 612.8 T (typically) 204.62 612.8 T (means) 250.19 612.8 T (that) 284.42 612.8 T (no) 305.99 612.8 T (more) 321.56 612.8 T (virtual) 349.79 612.8 T (memory) 384.7 612.8 T (is) 428.26 612.8 T (a) 439.84 612.8 T (v) 444.93 612.8 T (ailable) 450.63 612.8 T (to) 486.19 612.8 T (this) 499.1 612.8 T (pro-) 520.01 612.8 T (cess) 72 598.8 T (\050because) 94.98 598.8 T (of) 139.95 598.8 T (insuf) 152.93 598.8 T (\336cient) 176.63 598.8 T (sw) 209.62 598.8 T (ap) 222.83 598.8 T (space) 237.15 598.8 T (or) 266.79 598.8 T (system) 279.77 598.8 T (imposed) 316.1 598.8 T (resource) 359.76 598.8 T (constraints\051.) 403.39 598.8 T (It) 465.37 598.8 T (is) 475.69 598.8 T (a) 486.68 598.8 T (common,) 495 598.8 T (b) 72 584.8 T (ut) 77.76 584.8 T (dangerous,) 90.04 584.8 T (programming) 145.31 584.8 T (practice) 213.58 584.8 T (to) 254.51 584.8 T (ignore) 266.79 584.8 T (the) 300.39 584.8 T (return) 318 584.8 T (v) 349.6 584.8 T (alues) 355.3 584.8 T (from) 382.91 584.8 T (the) 409.18 584.8 T (memory) 426.79 584.8 T (allocation) 469.73 584.8 T (rou-) 520.01 584.8 T (tines; f) 72 570.8 T (ailure to check for a zero return v) 104.88 570.8 T (alue can result in dereferencing a NULL pointer) 264.85 570.8 T (.) 495.12 570.8 T (W) 93.29 554.8 T (e) 103.66 554.8 T (e) 112.28 554.8 T (xtracted) 117.43 554.8 T (the) 159.37 554.8 T (object) 177.33 554.8 T (\336les) 209.95 554.8 T (for) 233.25 554.8 T (the) 250.53 554.8 T (malloc\050\051) 268.49 554.8 T (f) 312.44 554.8 T (amily) 316.31 554.8 T (of) 346.94 554.8 T (functions) 360.23 554.8 T (from) 408.19 554.8 T (the) 434.81 554.8 T (standard) 452.76 554.8 T (C) 496.71 554.8 T (library) 508.01 554.8 T (and) 72 540.8 T (used) 92.82 540.8 T (a) 118.31 540.8 T (binary) 127.13 540.8 T (re) 161.28 540.8 T (writing) 170.3 540.8 T (utility) 208.46 540.8 T (to) 240.63 540.8 T (rename) 253.46 540.8 T (the) 292.27 540.8 T (symbols) 310.42 540.8 T ([1].) 353.92 540.8 T (By) 374.4 540.8 T (creating) 391.9 540.8 T (an) 434.04 540.8 T (object) 448.86 540.8 T (\336le) 481.68 540.8 T (with) 500.51 540.8 T (the) 525.34 540.8 T (original) 72 526.8 T (library) 113.17 526.8 T (call) 149 526.8 T (names) 170.16 526.8 T (\050called) 204.66 526.8 T (\322libjig\323\051) 241.15 526.8 T (and) 284.98 526.8 T (linking) 306.15 526.8 T (ag) 344 526.8 T (ainst) 355.27 526.8 T (the) 381.77 526.8 T (ne) 400.27 526.8 T (w) 411.3 526.8 T (library) 423.8 526.8 T (,) 455.01 526.8 T (we) 461.85 526.8 T (were) 479.68 526.8 T (able) 506.83 526.8 T (to) 530.66 526.8 T (intercept) 72 512.8 T (calls) 117.55 512.8 T (to) 143.1 512.8 T (malloc\050\051) 155.99 512.8 T (\050see) 200.21 512.8 T (Figure) 223.09 512.8 T (2\051.) 257.42 512.8 T (An) 273.97 512.8 T (y) 288.46 512.8 T (call) 298.01 512.8 T (to) 318.9 512.8 T (malloc\050\051) 331.79 512.8 T (in) 376.01 512.8 T (the) 388.9 512.8 T (user) 407.12 512.8 T (program) 430.67 512.8 T (or) 474.89 512.8 T (the) 488.44 512.8 T (system) 506.66 512.8 T (library) 72 498.8 T (\336rst) 107.19 498.8 T (went) 129.07 498.8 T (through) 155.6 498.8 T (libjig,) 196.14 498.8 T (before) 227.68 498.8 T (calling) 261.54 498.8 T (the) 297.4 498.8 T (real) 315.27 498.8 T (malloc\050\051.) 336.46 498.8 T (The) 383.32 498.8 T (routines) 405.18 498.8 T (in) 447.05 498.8 T (libjig) 459.59 498.8 T (control) 488.14 498.8 T (the) 525.34 498.8 T (a) 72 484.8 T (v) 77.09 484.8 T (erage percent of the time that malloc\050\051 f) 82.91 484.8 T (ails.) 273.73 484.8 T 2 F (Figur) 151.34 224.4 T (e) 179.8 224.4 T (2: Inter) 188.12 224.4 T (cepting calls to the memory allocation r) 226.9 224.4 T (outine) 428.65 224.4 T 0 F (W) 90 192.4 T (e) 100.37 192.4 T (tested) 109.53 192.4 T (the) 141.36 192.4 T (programs) 159.86 192.4 T (in) 209.02 192.4 T (the) 222.19 192.4 T (\322/bin\323) 240.69 192.4 T (and) 273.85 192.4 T (\322/usr/ucb\323) 295.02 192.4 T (directories) 348.17 192.4 T (on) 402.66 192.4 T (a) 418.49 192.4 T (system) 427.65 192.4 T (running) 464.83 192.4 T (SunOS) 505.99 192.4 T (4.1.3.) 72 178.4 T (Of) 102.94 178.4 T (the) 119.53 178.4 T (programs) 138.13 178.4 T (that) 187.39 178.4 T (had) 209.33 178.4 T (source) 230.59 178.4 T (code) 265.85 178.4 T (readily) 292.44 178.4 T (a) 329.7 178.4 T (v) 334.79 178.4 T (ailable,) 340.49 178.4 T (53) 379.42 178.4 T (made) 395.35 178.4 T (use) 425.28 178.4 T (of) 445.21 178.4 T (malloc\050\051,) 459.14 178.4 T (and) 506.73 178.4 T (25) 528 178.4 T (\05047%\051 crashed with our library) 72 164.4 T (. The utilities that crashed are listed in T) 219.18 164.4 T (able) 411.86 164.4 T (6.) 434.86 164.4 T (The) 90 148.4 T (memory) 112.09 148.4 T (allocation) 155.52 148.4 T (routines) 206.29 148.4 T (return) 248.38 148.4 T (zero) 280.47 148.4 T (typically) 304.56 148.4 T (when) 349.99 148.4 T (a) 379.42 148.4 T (user) 388.18 148.4 T (or) 411.61 148.4 T (system) 425.04 148.4 T (resource) 461.8 148.4 T (limit) 505.88 148.4 T (is) 532 148.4 T (reached.) 72 134.4 T (A) 115.52 134.4 T (common) 127.39 134.4 T (e) 172.6 134.4 T (xample) 177.74 134.4 T (is) 216.28 134.4 T (when) 227.49 134.4 T (the) 256.69 134.4 T (sw) 274.57 134.4 T (ap) 287.78 134.4 T (space) 302.31 134.4 T (is) 332.17 134.4 T (full.) 343.39 134.4 T (Note) 366.26 134.4 T (that) 392.8 134.4 T (man) 414.01 134.4 T (y) 434.49 134.4 T (of) 443.7 134.4 T (the) 456.9 134.4 T (utilities) 474.77 134.4 T (listed) 514 134.4 T (in) 72 120.4 T (T) 84.1 120.4 T (able) 90.47 120.4 T (6) 113.46 120.4 T (are) 122.22 120.4 T (ones) 139.63 120.4 T (that) 164.39 120.4 T (a) 185.15 120.4 T (programmer) 193.24 120.4 T (might) 255.31 120.4 T (w) 286.08 120.4 T (ant) 294.62 120.4 T (to) 312.05 120.4 T (use) 324.14 120.4 T (when) 342.9 120.4 T (this) 371.65 120.4 T (situation) 391.75 120.4 T (occurs:) 435.85 120.4 T (\322\336nger\323,) 473.27 120.4 T (\322w\323,) 517.68 120.4 T (or) 72 106.4 T (\322users\323) 84.91 106.4 T (\050to) 123.14 106.4 T (see) 139.39 106.4 T (who) 157.63 106.4 T (is) 181.21 106.4 T (logged) 192.12 106.4 T (in\051,) 227.7 106.4 T (\322login\323) 246.95 106.4 T (\050to) 285.19 106.4 T (log) 301.44 106.4 T (in) 319.69 106.4 T (as) 331.94 106.4 T (super) 344.85 106.4 T (-user) 370.6 106.4 T (to) 397.51 106.4 T (try) 409.76 106.4 T (to) 426.01 106.4 T (\336x) 438.26 106.4 T (the) 453.84 106.4 T (situation\051,) 471.42 106.4 T (and) 522.67 106.4 T 72 84 540 99 C 0 0 0 1 0 0 0 1 K 81 97 225 97 2 L 0.5 H 2 Z 0 X N -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (1.) 90 77.33 T (The memory allocation routines that we considered were calloc\050\051, malloc\050\051, and realloc\050\051.) 100 77.33 T 72 234.4 540 464.8 C 0 0 0 1 0 0 0 1 K 234 239.8 369 464.12 R 3 H 0 Z 0 X N 387 239.8 522 464.12 R N 81 239.8 216 464.12 R N 0 14 Q (program) 124.78 444.88 T (libjig) 286.72 444.88 T (C library) 429.42 444.88 T 3 10 Q (malloc\050...\051;) 90 415.53 T (void *) 243 415.53 T 0 14 Q (\050sym table modi\336ed\051) 396.17 429.71 T 3 10 Q (void *) 396 396.02 T (malloc\050...\051 {) 243 400.36 T 1 F (r) 255 350.42 T (andomly r) 258.74 350.42 T (eturn zer) 299.2 350.42 T (o or rv) 334.58 350.42 T 0 F (;) 361.8 350.42 T 3 F (}) 243.6 321.14 T (_malloc\050...\051 {) 396 380.85 T (. . .) 408 350.51 T (}) 396 320.17 T (rv=_malloc\050...\051;) 255 370.02 T 228.04 403.82 228.04 406.68 233 403.81 228.04 400.95 4 Y 1 H N 228.04 403.82 228.04 406.68 233 403.81 228.04 400.95 4 Y V 162 415.53 M 189 415.53 189 415.53 194.86 409.67 D 200.31 404.22 200.69 403.82 227.54 403.82 D 2 Z N 391.26 383.78 391.25 386.66 396.25 383.8 391.27 380.9 4 Y 0 Z N 391.26 383.78 391.25 386.66 396.25 383.8 391.27 380.9 4 Y V 352.25 374.8 M 375.56 382.57 378.74 383.73 390.76 383.78 D 2 Z N -45 -45 657 837 C 0 0 0 1 0 0 0 1 K FMENDPAGE %%EndPage: "20" 20 %%Page: "21" 21 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 21) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 0 12 Q (\322df\323 \050to check the amount of disk space used\051.) 72 712 T (In) 90 505 T (all) 103.1 505 T (b) 118.2 505 T (ut) 123.96 505 T (one) 136.39 505 T (case) 156.82 505 T (that) 180.57 505 T (we) 201.67 505 T (in) 218.77 505 T (v) 227.62 505 T (estig) 233.44 505 T (ated,) 256.05 505 T (the) 282.14 505 T (programs) 299.91 505 T (simply) 348.33 505 T (dereference) 384.11 505 T (the) 443.16 505 T (address) 460.93 505 T (returned) 500.02 505 T (by) 72 491 T (malloc\050\051) 87.33 491 T (without) 131.33 491 T (an) 171.33 491 T (y) 182.48 491 T (checking.) 191.82 491 T (Some) 241.47 491 T (of) 272.14 491 T (the) 285.47 491 T (programs) 303.47 491 T (check) 352.13 491 T (ed) 380 491 T (the) 394.66 491 T (return) 412.66 491 T (v) 444.65 491 T (alues) 450.35 491 T (in) 478.35 491 T (one) 491.02 491 T (place,) 511.68 491 T (and) 72 477 T (not) 93.16 477 T (another) 112.33 477 T (,) 147.83 477 T (while) 154.66 477 T (other) 185.16 477 T (programs) 213.65 477 T (did) 262.8 477 T (not) 281.97 477 T (check) 301.14 477 T (at) 332.95 477 T (all.) 345.45 477 T (The) 364.28 477 T (one) 386.77 477 T (case) 407.93 477 T (that) 432.41 477 T (w) 454.24 477 T (as) 462.79 477 T (dif) 476.61 477 T (ferent) 489.64 477 T (w) 521.46 477 T (as) 530 477 T (\322df\323) 72 463 T (\050a) 95.48 463 T (program) 107.63 463 T (that) 151.11 463 T (sho) 171.94 463 T (ws) 188.3 463 T (the) 204.46 463 T (amount) 221.95 463 T (of) 260.78 463 T (disk) 273.6 463 T (space) 296.43 463 T (a) 325.91 463 T (v) 331 463 T (ailable\051;) 336.7 463 T (it) 378.85 463 T (check) 388.35 463 T (ed) 416.21 463 T (all) 430.37 463 T (its) 445.19 463 T (calls) 459.36 463 T (to) 484.18 463 T (malloc\050\051.) 496.34 463 T (Ho) 72 449 T (we) 86.36 449 T (v) 100.06 449 T (er) 105.88 449 T (\322df\323) 119.86 449 T (calls) 145.16 449 T (another) 171.82 449 T (C) 212.46 449 T (library) 225.12 449 T (routine) 261.77 449 T (\050getmntent\050\051\051,) 300.42 449 T (which) 372.06 449 T (then) 406.04 449 T (calls) 431.36 449 T (malloc\050\051) 458.02 449 T (without) 503.33 449 T (checking its return code. This is an e) 72 435 T (xample of a program being as strong as its weak) 247.79 435 T (est link.) 479.29 435 T (This) 90 419 T (testing) 114.3 419 T (technique) 149.27 419 T (of) 198.89 419 T (modifying) 211.85 419 T (the) 264.81 419 T (return) 282.44 419 T (v) 314.06 419 T (alue) 319.76 419 T (of) 342.71 419 T (a) 355.67 419 T (call) 363.96 419 T (to) 384.26 419 T (a) 396.55 419 T (library) 404.85 419 T (can) 439.8 419 T (be) 459.42 419 T (easily) 473.71 419 T (applied) 504.67 419 T (to) 72 405 T (an) 85.46 405 T (y) 96.61 405 T (other) 106.74 405 T (library) 135.53 405 T (routine.) 171.65 405 T (A) 212.78 405 T (common) 225.57 405 T (cause) 271.7 405 T (of) 302.48 405 T (programming) 316.6 405 T (error) 386.06 405 T (is) 413.51 405 T (not) 425.64 405 T (checking) 445.1 405 T (the) 492.55 405 T (return) 511.34 405 T (v) 72 391 T (alue) 77.7 391 T (on) 101.43 391 T (\336le) 117.17 391 T (operations) 136.25 391 T (\050open,) 189.98 391 T (read,) 224.05 391 T (or) 251.44 391 T (write\051.) 265.17 391 T (Libjig) 300.57 391 T (could) 333.65 391 T (be) 364.06 391 T (used) 379.12 391 T (to) 404.86 391 T (\336nd) 417.94 391 T (potential) 440.35 391 T (b) 486.09 391 T (ugs) 491.85 391 T (in) 512.26 391 T (the) 525.34 391 T (use of these calls.) 72 377 T 2 F (Utilities that Crashed) 251 664 T 0 9 Q (bar) 132 642 T (df) 204 642 T (login) 276 642 T (rup) 348 642 T (tsort) 420 642 T (cc) 132 623 T (\336nger) 204 623 T (ls) 276 623 T (ruptime) 348 623 T (users) 420 623 T (checknr) 132 604 T (graph) 204 604 T (man) 276 604 T (rusers) 348 604 T (vplot) 420 604 T (ctags) 132 585 T (iostat) 204 585 T (mkstr) 276 585 T (sdif) 348 585 T (f) 361.27 585 T (w) 420 585 T (derof) 132 566 T (f) 150.76 566 T (last) 204 566 T (rsh) 276 566 T (symorder) 348 566 T (xsend) 420 566 T 2 12 Q (T) 155.43 545 T (able 6: Utilities that Crashed when malloc\050\051 Retur) 162.33 545 T (ns Zer) 417.79 545 T (o) 450.57 545 T (T) 247.21 531 T (ested on SunOS 4.1.3.) 254.11 531 T 126 679.75 126 559.25 2 L V 0.5 H 0 Z N 198 652.5 198 558.75 2 L V N 270 652.5 270 558.75 2 L V N 342 652.5 342 558.75 2 L V N 414 652.5 414 558.75 2 L V N 486 679.75 486 559.25 2 L V N 125.75 680 486.25 680 2 L V N 126.25 655.25 485.75 655.25 2 L V N 126.25 652.75 485.75 652.75 2 L V N 125.75 635 486.25 635 2 L V N 125.75 616 486.25 616 2 L V N 125.75 597 486.25 597 2 L V N 125.75 578 486.25 578 2 L V N 125.75 559 486.25 559 2 L V N FMENDPAGE %%EndPage: "21" 21 %%Page: "22" 22 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 22) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 2 16 Q (6 CONCLUSIONS) 72 709.33 T 0 12 Q (W) 72 686 T (e) 82.37 686 T (re) 90.87 686 T (visited) 99.89 686 T (our) 135.06 686 T (original) 154.23 686 T (testing) 194.73 686 T (study) 229.91 686 T (with) 259.08 686 T (the) 283.59 686 T (e) 301.42 686 T (xpectation) 306.57 686 T (that) 359.73 686 T (it) 380.9 686 T (w) 390.74 686 T (ould) 399.29 686 T (be) 423.8 686 T (dif) 438.29 686 T (\336cult) 451.33 686 T (to) 479.17 686 T (\336nd) 491.67 686 T (man) 513.52 686 T (y) 534 686 T (b) 72 672 T (ugs) 77.76 672 T (in) 98.68 672 T (the) 112.26 672 T (ne) 131.18 672 T (w) 142.2 672 T (v) 155.12 672 T (ersions) 160.94 672 T (of) 199.18 672 T (the) 213.43 672 T (utilities) 232.34 672 T (that) 272.6 672 T (we) 294.85 672 T (tested.) 313.09 672 T (Our) 348.34 672 T (1995) 371.25 672 T (study) 399.5 672 T (surprised) 429.75 672 T (us) 477.99 672 T (in) 492.91 672 T (se) 506.5 672 T (v) 516.19 672 T (eral) 522.01 672 T (w) 72 658 T (ays.) 80.54 658 T (First,) 90 642 T (the) 118.13 642 T (continued) 135.92 642 T (pre) 186.38 642 T (v) 201.4 642 T (alence) 207.1 642 T (of) 240.87 642 T (b) 254 642 T (ugs) 259.76 642 T (in) 279.55 642 T (the) 292.01 642 T (basic) 309.8 642 T (UNIX) 337.59 642 T (utilities) 370.7 642 T (seems) 409.84 642 T (a) 442.29 642 T (bit) 450.74 642 T (disturbing.) 466.54 642 T (The) 521.34 642 T (simplicity) 72 628 T (of) 122.8 628 T (performing) 135.59 628 T (random) 192.37 628 T (testing) 231.82 628 T (and) 266.62 628 T (its) 286.74 628 T (demonstrated) 300.87 628 T (ef) 368.32 628 T (fecti) 377.35 628 T (v) 398.37 628 T (eness) 404.19 628 T (w) 432.98 628 T (ould) 441.52 628 T (seem) 465.65 628 T (to) 493.1 628 T (be) 505.23 628 T (irre-) 519.35 628 T (sistible) 72 614 T (to) 109.59 614 T (corporate) 122.51 614 T (testing) 171.4 614 T (groups.) 206.99 614 T (The) 246.24 614 T (basic) 268.48 614 T (utilities) 296.72 614 T (may) 336.32 614 T (simply) 360.57 614 T (f) 396.82 614 T (all) 400.7 614 T (between) 416.28 614 T (the) 459.85 614 T (cracks.) 478.1 614 T (Most) 515.33 614 T (of) 72 600 T (these) 86.13 600 T (are) 114.92 600 T (not) 133.71 600 T (major) 153.17 600 T (\337ash) 185.3 600 T (y) 207.91 600 T (components,) 218.04 600 T (such) 283.17 600 T (as) 309.3 600 T (a) 323.43 600 T (k) 332.89 600 T (ernel) 338.77 600 T (or) 366.89 600 T (compiler) 381.02 600 T (.) 423.02 600 T (There) 430.15 600 T (is) 462.26 600 T (little) 474.4 600 T (glory) 500.54 600 T (or) 530 600 T (mark) 72 586 T (eting) 96.54 586 T (impact) 123.99 586 T (associated) 160.11 586 T (with) 212.89 586 T (them) 237.68 586 T (and) 265.13 586 T (dif) 285.91 586 T (ferent) 298.94 586 T (companies) 330.38 586 T (assign) 385.16 586 T (these) 418.61 586 T (utilities) 446.73 586 T (to) 486.19 586 T (dif) 498.98 586 T (ferent) 512.02 586 T (groups.) 72 572 T (Second,) 90 556 T (the) 131.83 556 T (reliability) 149.99 556 T (of) 200.15 556 T (netw) 213.65 556 T (ork) 236.85 556 T (services) 256.35 556 T (and) 298.5 556 T (X-W) 319.32 556 T (indo) 342.83 556 T (w) 363.87 556 T (serv) 376.03 556 T (ers) 395.84 556 T (is) 413.33 556 T (good) 424.83 556 T (ne) 452.33 556 T (ws.) 463.36 556 T (These) 483.19 556 T (basic) 515.34 556 T (system) 72 542 T (components) 109.39 542 T (are) 171.44 542 T (getting) 190.15 542 T (enough) 227.54 542 T (attention) 266.92 542 T (within) 312.97 542 T (the) 347.7 542 T (computer) 366.42 542 T (companies) 415.79 542 T (that) 471.17 542 T (the) 493.23 542 T (y) 507.71 542 T (ha) 517.76 542 T (v) 528.85 542 T (e) 534.67 542 T (been honed to a \050relati) 72 528 T (v) 179 528 T (ely\051 high le) 184.82 528 T (v) 239.18 528 T (el of reliability) 245 528 T (.) 315.55 528 T (Third,) 90 512 T (X-W) 123.12 512 T (indo) 146.63 512 T (w) 167.66 512 T (applications) 179.79 512 T (are) 241.24 512 T (no) 259.35 512 T (less) 274.81 512 T (prone) 296.27 512 T (to) 327.05 512 T (f) 339.84 512 T (ailure) 343.72 512 T (\050and) 374.5 512 T (seem) 399.28 512 T (to) 427.4 512 T (be) 440.19 512 T (more) 454.98 512 T (so\051) 483.09 512 T (than) 501.21 512 T (the) 525.34 512 T (basic) 72 498 T (utilities.) 100.19 498 T (These) 142.74 498 T (applications) 174.93 498 T (are) 236.46 498 T (generally) 254.65 498 T (ne) 302.84 498 T (wer) 313.86 498 T (than) 335.39 498 T (the) 359.59 498 T (basic) 377.79 498 T (utilities) 405.98 498 T (so,) 445.53 498 T (we) 462.73 498 T (hope,) 480.26 498 T (w) 510.12 498 T (ould) 518.66 498 T (be) 72 484 T (designed) 87.06 484 T (with) 133.46 484 T (better) 158.53 484 T (engineering) 189.58 484 T (techniques.) 249.97 484 T (Perhaps) 308.03 484 T (the) 349.75 484 T (lar) 368.15 484 T (ge) 380.6 484 T (additional) 395.66 484 T (comple) 447.39 484 T (xity) 482.54 484 T (of) 504.95 484 T (con-) 518.68 484 T (structing) 72 470 T (a) 117.08 470 T (visual) 125.49 470 T (interf) 157.24 470 T (ace) 183.12 470 T (is) 202.18 470 T (too) 213.27 470 T (much) 231.69 470 T (of) 261.43 470 T (a) 274.51 470 T (b) 282.92 470 T (urden.) 288.68 470 T (Hanging) 322.09 470 T (an) 366.5 470 T (X-W) 380.91 470 T (indo) 404.42 470 T (w) 425.45 470 T (application) 437.2 470 T (can) 493.61 470 T (cause) 513.35 470 T (the) 72 456 T (serv) 89.39 456 T (er) 109.2 456 T (to) 121.25 456 T (ignore) 133.3 456 T (all) 166.69 456 T (other) 181.41 456 T (input) 208.79 456 T (until) 236.18 456 T (the) 260.92 456 T (hanging) 278.3 456 T (application) 319.69 456 T (is) 375.74 456 T (terminated) 386.47 456 T (\050which) 440.51 456 T (must) 476.56 456 T (be) 502.62 456 T (done) 516.67 456 T (remotely\051.) 72 442 T (F) 90 426 T (ourth,) 96.49 426 T (the) 130.01 426 T (reliability) 149.86 426 T (of) 201.71 426 T (the) 216.9 426 T (freely-distrib) 236.75 426 T (uted) 299.16 426 T (GNU) 325.01 426 T (and) 356.19 426 T (Linux) 378.7 426 T (softw) 412.55 426 T (are) 439.1 426 T (w) 458.94 426 T (as) 467.48 426 T (surprisingly) 482.66 426 T (good,) 72 412 T (and) 103.15 412 T (noticeably) 124.63 412 T (better) 178.77 412 T (than) 210.25 412 T (the) 235.06 412 T (commercially) 253.88 412 T (produced) 324.02 412 T (softw) 372.82 412 T (are.) 399.36 412 T (It) 421.17 412 T (is) 432.65 412 T (dif) 444.81 412 T (\336cult) 457.84 412 T (to) 486.66 412 T (tell) 500.15 412 T (ho) 519.64 412 T (w) 531.34 412 T (much) 72 398 T (of) 101.37 398 T (this) 114.07 398 T (is) 134.12 398 T (a) 144.83 398 T (result) 152.87 398 T (of) 182.24 398 T (programmer) 194.94 398 T (quality) 256.97 398 T (,) 289.52 398 T (the) 295.23 398 T (culture) 312.6 398 T (of) 348.63 398 T (the) 361.34 398 T (programming) 378.71 398 T (en) 446.74 398 T (vironment,) 457.59 398 T (or) 512.63 398 T (the) 525.34 398 T (general) 72 384 T (b) 111.08 384 T (urden) 116.84 384 T (supported) 147.93 384 T (by) 199.02 384 T (the) 214.79 384 T (softw) 233.22 384 T (are) 259.76 384 T (de) 278.18 384 T (v) 289.21 384 T (elopers.) 295.03 384 T (Lar) 336.45 384 T (ge) 352.89 384 T (companies) 367.98 384 T (will) 423.07 384 T (need) 445.51 384 T (to) 471.93 384 T (mak) 485.03 384 T (e) 505.58 384 T (some) 514.67 384 T (concrete) 72 370 T (changes) 115.72 370 T (in) 157.46 370 T (their) 169.87 370 T (softw) 194.95 370 T (are) 221.49 370 T (de) 239.22 370 T (v) 250.25 370 T (elopment) 256.07 370 T (en) 303.81 370 T (vironments) 314.66 370 T (and) 371.74 370 T (culture) 392.15 370 T (if) 428.55 370 T (the) 438.96 370 T (y) 453.45 370 T (hope) 462.52 370 T (to) 488.93 370 T (produce) 501.35 370 T (higher quality softw) 72 356 T (are.) 168.54 356 T (Modern) 90 340 T (compilers,) 131.02 340 T (languages,) 184.38 340 T (and) 238.4 340 T (de) 258.75 340 T (v) 269.78 340 T (elopment) 275.6 340 T (tools) 323.29 340 T (should) 349.66 340 T (be) 384.7 340 T (helping) 399.05 340 T (us) 438.08 340 T (de) 451.78 340 T (v) 462.81 340 T (elop) 468.63 340 T (more) 492.32 340 T (reli-) 520.01 340 T (able) 72 326 T (programs.) 95.26 326 T (Ho) 146.85 326 T (we) 161.22 326 T (v) 174.91 326 T (er) 180.73 326 T (it) 193.32 326 T (is) 203.26 326 T (clear) 214.53 326 T (that) 241.12 326 T (these) 262.39 326 T (ne) 290.31 326 T (w) 301.34 326 T (tools) 313.27 326 T (can) 339.88 326 T (be) 359.81 326 T (as) 374.4 326 T (easily) 387.67 326 T (ab) 418.93 326 T (used) 430.02 326 T (as) 455.28 326 T (more) 468.55 326 T (primiti) 496.48 326 T (v) 528.85 326 T (e) 534.67 326 T (tools) 72 312 T (\050old) 100.01 312 T (assembly) 124.01 312 T (language) 173.34 312 T (programmers) 221.33 312 T (are) 289.98 312 T (proud) 309.3 312 T (to) 341.96 312 T (point) 355.97 312 T (this) 385.31 312 T (out\051.) 407.32 312 T (A) 434.32 312 T (good) 447.65 312 T (e) 476.32 312 T (xample) 481.46 312 T (w) 521.46 312 T (as) 530 312 T (sho) 72 298 T (wn) 88.37 298 T (in) 105.96 298 T (Section) 118.22 298 T (2.3.2,) 157.22 298 T (where) 187.15 298 T (the) 219.4 298 T (problem) 236.99 298 T (of) 279.91 298 T (the) 292.84 298 T (missing) 310.43 298 T (input) 350.7 298 T (\336eld-width) 378.3 298 T (speci\336cation) 433.9 298 T (of) 497.48 298 T (the) 510.41 298 T (C-) 528 298 T (library) 72 284 T (gets\050\051 can still be found in the C++ \322) 106.99 284 T 3 F (>>) 283.18 284 T 0 F (\323 operator) 297.58 284 T (.) 345.23 284 T (Ne) 90 268 T (w) 103.69 268 T (v) 115.94 268 T (ersions) 121.76 268 T (of) 159.33 268 T (softw) 172.91 268 T (are) 199.45 268 T (are) 217.69 268 T (being) 235.92 268 T (released) 266.17 268 T (all) 309.06 268 T (the) 324.64 268 T (time.) 342.88 268 T (Our) 370.8 268 T (results) 393.04 268 T (represent) 427.95 268 T (a) 475.51 268 T (snapshot) 484.42 268 T (of) 530 268 T (v) 72 254 T (ersions that we had a) 77.82 254 T (v) 178.22 254 T (ailable to us at the time of testing.) 183.92 254 T (There) 90 238 T (are) 121.2 238 T (certainly) 139.07 238 T (man) 184.28 238 T (y) 204.76 238 T (things) 213.98 238 T (left) 246.54 238 T (to) 265.75 238 T (do) 278.3 238 T (in) 293.52 238 T (a) 306.07 238 T (study) 314.62 238 T (such) 343.84 238 T (as) 369.05 238 T (this) 382.27 238 T (one.) 402.82 238 T (The) 426.37 238 T (random) 448.24 238 T (testing) 488.12 238 T (can) 523.34 238 T (be) 72 224 T (applied) 86.09 224 T (to) 124.17 224 T (k) 136.27 224 T (ernel) 142.15 224 T (calls) 168.9 224 T (and) 193.65 224 T (to) 213.74 224 T (randomly) 225.83 224 T (generated) 274.59 224 T (command-line) 323.99 224 T (parameters) 396.08 224 T (to) 451.48 224 T (utilities.) 463.57 224 T (Check-) 505.34 224 T (ing) 72 210 T (return) 90.4 210 T (codes) 122.11 210 T (from) 152.5 210 T (library) 178.88 210 T (routines) 213.94 210 T (should) 255.66 210 T (be) 290.72 210 T (e) 305.11 210 T (xtended) 310.26 210 T (to) 351.31 210 T (input/output) 363.71 210 T (and) 425.45 210 T (other) 445.84 210 T (types) 473.56 210 T (of) 501.95 210 T (calls.) 515 210 T (An) 72 196 T (y) 86.48 196 T (procedure) 95.4 196 T (call) 146.29 196 T (interf) 166.53 196 T (ace) 192.4 196 T (can) 211.29 196 T (be) 230.86 196 T (check) 245.1 196 T (ed) 272.97 196 T (using) 287.21 196 T (libjig.) 316.13 196 T (Other) 347.38 196 T (areas) 377.62 196 T (of) 405.18 196 T (system) 418.09 196 T (softw) 454.34 196 T (are) 480.88 196 T (are) 498.45 196 T (ame-) 516.01 196 T (nable) 72 182 T (to) 101.15 182 T (this) 113.64 182 T (type) 134.14 182 T (of) 157.96 182 T (testing.) 171.12 182 T (The) 209.28 182 T (system) 231.1 182 T (call) 267.59 182 T (interf) 288.07 182 T (ace) 313.95 182 T (is) 333.09 182 T (an) 344.25 182 T (ideal) 358.73 182 T (candidate;) 385.22 182 T (calling) 437.7 182 T (these) 473.52 182 T (routines) 501.34 182 T (with random parameter v) 72 168 T (alues is lik) 192.67 168 T (ely to produce interesting results.) 243.89 168 T (Other) 90 152 T (operating) 121.25 152 T (systems) 170.5 152 T (should) 212.43 152 T (be) 248.36 152 T (gi) 263.61 152 T (v) 272.65 152 T (en) 278.47 152 T (the) 293.72 152 T (same) 312.31 152 T (scrutin) 340.9 152 T (y) 373.38 152 T (as) 383.31 152 T (we) 397.23 152 T (g) 415.14 152 T (a) 421.08 152 T (v) 426.17 152 T (e) 431.99 152 T (to) 441.25 152 T (UNIX.) 454.51 152 T (The) 491.42 152 T (prob-) 514.01 152 T (lems) 72 138 T (that) 97.52 138 T (we) 118.38 138 T (found) 135.22 138 T (in) 166.07 138 T (the) 178.26 138 T (systems) 195.78 138 T (that) 236.64 138 T (we) 257.49 138 T (tested) 274.34 138 T (should) 305.19 138 T (not) 340.05 138 T (be) 358.24 138 T (interpreted) 372.42 138 T (to) 427.26 138 T (say) 439.45 138 T (that) 458.3 138 T (UNIX) 479.15 138 T (is) 511.99 138 T (an) 522.85 138 T (y) 534 138 T (w) 72 124 T (orse) 80.54 124 T (\050or) 103.33 124 T (better\051) 120.12 124 T (than) 154.24 124 T (other) 177.7 124 T (systems.) 205.16 124 T (Certainly) 248.96 124 T (the) 296.42 124 T (popular) 313.89 124 T (Apple) 353.34 124 T (Macintosh) 385.47 124 T (and) 438.93 124 T (IBM) 459.06 124 T (PC) 484.52 124 T (systems) 502 124 T (should recei) 72 110 T (v) 130.02 110 T (e the same le) 135.84 110 T (v) 197.86 110 T (el of testing.) 203.68 110 T FMENDPAGE %%EndPage: "22" 22 %%Page: "23" 23 612 792 0 FMBEGINPAGE 0 FrameSetSepColors FrameNoSep -45 -45 657 837 C 0 0 0 1 0 0 0 1 K 0 10 Q 0 X (Page 23) 508.06 749.33 T 1 F ( October 1995) 277.11 36 T 2 16 Q (SOURCE CODE AND RELA) 72 709.33 T (TED P) 274.48 709.33 T (APERS) 319.97 709.33 T 0 12 Q (Note) 72 686 T (that) 98.63 686 T (the) 119.93 686 T (source) 137.89 686 T (and) 172.51 686 T (binary) 193.14 686 T (code) 227.1 686 T (for) 253.06 686 T (the) 270.35 686 T (fuzz) 288.31 686 T (tools) 312.26 686 T (\050for) 338.9 686 T (UNIX) 360.19 686 T (and) 393.48 686 T (W) 414.11 686 T (indo) 424.96 686 T (ws) 445.99 686 T (NT\051) 462.62 686 T (is) 485.92 686 T (a) 497.22 686 T (v) 502.31 686 T (ailable) 508.01 686 T (from our W) 72 672 T (eb page at:) 127.69 672 T 3 9 Q (ftp://grilled.cs.wisc.edu/fuzz) 182.68 672 T 0 12 Q (.) 344.68 672 T (A) 72 656 T (more) 84.69 656 T (recent) 113.38 656 T (paper) 146.72 656 T (,) 172.89 656 T (applying) 179.91 656 T (fuzz) 225.94 656 T (testing) 250.62 656 T (techniques) 286.65 656 T (to) 342 656 T (applications) 355.36 656 T (running) 417.38 656 T (on) 458.74 656 T (W) 474.76 656 T (indo) 485.61 656 T (ws) 506.65 656 T (NT) 524 656 T (can be found at) 72 642 T 3 9 Q (ftp://grilled.cs.wisc.edu/technical_papers/fuzz-nt.pdf) 148.64 642 T 0 12 Q (.) 440.24 642 T 2 16 Q (A) 72 609.33 T (CKNO) 82.67 609.33 T (WLEDGMENTS) 129.87 609.33 T 0 12 Q (W) 72 586 T (e gratefully thank Mik) 82.37 586 T (e Po) 189.9 586 T (well for his observ) 210.6 586 T (ations about the softw) 299.95 586 T (are de) 405.49 586 T (v) 434.17 586 T (elopment process.) 439.99 586 T 2 16 Q (REFERENCES) 72 553.33 T 0 9 Q ([1]) 72 532 T (Cargille,) 100.8 532 T (J.,) 133.96 532 T (and) 143.87 532 T (Miller,) 158.78 532 T (B.P.,) 185.44 532 T (Binary) 205.11 532 T (Wrapping:) 231.52 532 T (A) 271.92 532 T (Technique) 280.33 532 T (for) 320.23 532 T (Instrumenting) 332.64 532 T (Object) 385.05 532 T (Code.) 410.95 532 T 1 F (SIGPLAN) 434.11 532 T (Notices) 472.02 532 T (27) 500.93 532 T 0 F (,) 509.93 532 T (6) 514.09 532 T (\050June) 520.51 532 T (1992\051, 17-18.) 100.8 521 T ([2]) 72 506 T (Miller,) 100.8 506 T (B.P.,) 128.1 506 T (Fredrikson,) 148.41 506 T (L.,) 192.21 506 T (and) 204.76 506 T (So,) 220.31 506 T (B.,) 234.62 506 T (An) 247.67 506 T (Empirical) 261.22 506 T (Study) 299.27 506 T (of) 322.83 506 T (the) 332.88 506 T (Reliability) 346.43 506 T (of) 386.99 506 T (UNIX) 397.04 506 T (Utilities.) 422.08 506 T 1 F (Communications) 455.89 506 T (of) 519.45 506 T (the) 529 506 T (ACM) 100.8 495 T (33) 122.4 495 T 0 F (,) 131.4 495 T (12) 136.25 495 T (\050December) 147.85 495 T (1990\051,) 190.43 495 T (32-44.) 216.28 495 T (Also) 242.13 495 T (appears) 261.73 495 T (in) 291.82 495 T (German) 301.42 495 T (translation) 333.02 495 T (as) 373.61 495 T (Fatale) 383.71 495 T (Fehlertr\212chtigkeit:) 408.31 495 T (Eine) 477.4 495 T (Eimpirische) 496.5 495 T (Studie zur Zuverlassigkeit von UNIX-Utilties,) 100.8 484 T 1 F (iX) 269.78 484 T 0 F ( \050March 1991\051.) 277.79 484 T 3 8 Q (ftp://grilled.cs.wisc.edu/technical_papers/fuzz.pd) 100.8 473 T 3 9 Q (f) 340.8 473 T 0 F (.) 346.2 473 T ([3]) 72 458 T (Rochlis,) 100.8 458 T (J.A.,) 132.62 458 T (and) 151.44 458 T (Eichin,) 166.5 458 T (M.W.,) 194.32 458 T (With) 219.63 458 T (Microscope) 239.7 458 T (and) 284.26 458 T (Tweezers:) 299.32 458 T (The) 338.37 458 T (Worm) 354.43 458 T (from) 379.49 458 T (MIT\325s) 399.06 458 T (Perspective.) 424.12 458 T 1 F (Communications) 469.93 458 T (of) 533 458 T (the ACM 32) 100.8 447 T 0 F (, 6 \050June 1989\051, 689-698.) 144.3 447 T ([4]) 72 432 T (Spafford, E.H., The Internet Worm: Crisis and Aftermath.) 100.8 432 T 1 F (Communications of the ACM 32) 312.01 432 T 0 F (, 6 \050June 1989\051, 678-687.) 428.01 432 T ([5]) 72 417 T (X Consortium,) 100.8 417 T 2 F (X Protocol Reference Manual) 156.55 417 T 0 F (. O\325Reilly and Associates, Inc., 1992.) 270.77 417 T FMENDPAGE %%EndPage: "23" 23 %%Trailer FMENDDOCUMENT %%BoundingBox: 0 0 612 792 %%PageOrder: Ascend %%Pages: 23 %%DocumentFonts: Times-Roman %%+ Times-Italic %%+ Times-Bold %%+ Courier %%+ ZapfDingbats %%+ Times-BoldItalic %%DocumentNeedsFonts: Times-Roman %%+ Times-Italic %%+ Times-Bold %%+ Courier %%+ ZapfDingbats %%+ Times-BoldItalic %%DocumentSuppliedFonts: %%EOF