Sophie

Sophie

distrib > Mandriva > 9.2 > i586 > by-pkgid > a804ef007a99f7d26cf24253c2994680 > files > 1293

howto-html-ja-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Secure Programming for Linux HOWTO: $B%P%C%U%!%*!<%P!<%U%m!<$N2sHr(B</TITLE>
 <LINK HREF="Secure-Programs-HOWTO-6.html" REL=next>
 <LINK HREF="Secure-Programs-HOWTO-4.html" REL=previous>
 <LINK HREF="Secure-Programs-HOWTO.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="Secure-Programs-HOWTO-6.html">$B<!$N%Z!<%8(B</A>
<A HREF="Secure-Programs-HOWTO-4.html">$BA0$N%Z!<%8(B</A>
<A HREF="Secure-Programs-HOWTO.html#toc5">$BL\<!$X(B</A>
<HR>
<H2><A NAME="s5">5. $B%P%C%U%!%*!<%P!<%U%m!<$N2sHr(B</A></H2>

<P>$B!V%P%C%U%!%*!<%P!<%U%m!<!W$O!"%;%-%e%j%F%#$N7g4Y$H$7$FIQHK$KH/@8$7$^$9!#(B
$B5;=QE*$K$O%W%m%0%i%`$N<BAu>e$NLdBj$G$9$,!"$"$^$j$KIQHK$KH/@8$7!"$+$D(B
$B=EBg$JLdBj$rJz$($F$$$k$N$G!"$"$($FFHN)$7$F9`L\$rN)$F$^$7$?!#(B
$B$3$NLdBj$,$$$+$K=EMW$+$O!"(BCERT $B$N4+9p$NFb(B 1998 $BG/$N(B 13 $B$NFb$N(B 9$B!"(B1999 
$BG/$N>/$J$/$H$bH>J,0J>e$,%P%C%U%!%*!<%P!<%U%m!<4XO"$G$"$k$3$H$GL@$i$+(B
$B$G$9!#(B
Bugtraq $B$K$h$kHs8x<0$JD4::$G$b!"$*$*$h$=(B 2/3 $B$N2sEz$,%P%C%U%!%*!<%P!<(B
$B%U%m!<$,%;%-%e%j%F%#$N@H<e$5$N860x$H$7$F$$$^$9(B($B;D$j$N2sEz$O!V@_Dj%_%9!W(B
$B$,860x$H$7$F$$$^$9(B) [Cowan 1999]
<P><B>$BLuCp!'(B</B>Bugtraq $B$O!"%;%-%e%j%F%#4XO"$N>pJs$r$d$j<h$j$9$k(B ML $B$G$9!#(B
<A HREF="http://www.securityfocus.com/bugtraq/archive/">ML $B$N%"!<%+%$%V(B</A> $B$,8x3+$5$l$F$$$^$9!#(B
<P>$B%P%C%U%!%*!<%P!<%U%m!<$,H/@8$9$k$N$O!"8GDjD9$N%P%C%U%!NN0h$K$"$kCM(B($BJ8;zNs(B
$B$J$I(B)$B$r!"$=$NNN0h$r1[$($F=q$-B3$1$F$7$^$&>l9g$G$9!#(B
$B$3$l$i$N8=>]$O!"%f!<%6$+$i$NF~NO$r%P%C%U%!$KFI$_9~$`;~$K$b5/$3$j$^$9$7!"(B
$B%W%m%0%i%`$N$^$C$?$/0c$C$?=hM}$N:GCf$G$b5/$3$k2DG=@-$,$"$j$^$9!#(B
<P>$B0BA4@-$,5a$a$i$l$k%W%m%0%i%`$G%P%C%U%!%*!<%P!<%U%m!<$r5v$7$F$7$^$&$H!"(B
$B1}!9$K$7$F967b<T$K0-MQ$5$l$k62$l$,$"$j$^$9!#(B
$B%P%C%U%!$,(B C $B$N%m!<%+%kJQ?t$G<BAu$5$l$F$$$?>l9g!"967b<T$O$=$N4X?t$NCf$G(B
$BK>$_$N%3!<%I$r6/@)E*$K<B9T$5$;$k<jCJ$H$7$F%*!<%P%U%m!<$rMxMQ$G$-$F$7$^$$$^$9!#(B
$B%P%C%U%!$,%R!<%WNN0h$K$"$C$F$b!">u67$,2~A1$9$k$o$1$G$O$"$j$^$;$s!#967b<T(B
$B$O!"$3$N>uBV$G$b%W%m%0%i%`Cf$NJQ?t$r$$$8$k$3$H$,$G$-$^$9!#(B
$B$5$i$K>\$7$$$3$H$O!"(BAleph1 [1996]$B!"(BMudge [1995]$B$r;29M$K$9$k$+!"(B
<A HREF="http://destroy.net/machines/security/">http://destroy.net/machines/security/</A> $B$K$"$k(B
$B!V(BStack Smashing Security Vulnerabilities$B!W$r8+$F$/$@$5$$!#(B 
<P><B>$BLuCp!'(B</B>$B%R!<%WNN0h$O!"%W%m%0%i%`$GMxMQ$9$k%G!<%?$r3JG<$9$kNN0h$G!"(B
$BMxMQ;~$KF0E*$K3d$jEv$F$i$l!"MxMQ$,:Q$`$H2rJ|$5$l$?8e!":FMxMQ$K2s$5$l$^$9!#(B
C $B$G$O(B malloc(3) $B$G3NJ]$5$l$?NN0h$,$3$l$KEv$?$j$^$9!#(B
<P>$B%W%m%0%i%`8@8l$NCf$K$O!"$=$b$=$b$3$&$$$C$?LdBj$K1F6A$5$l$J$$$b$N$b$"$j$^$9!#(B
$B$D$^$j<+F0E*$KG[Ns$NBg$-$5$rD4@0$7$?$j(B($B$?$H$($P(B Perl)$B!"%P%C%U%!%*!<%P!<(B
$B%U%m!<$r8+$D$1$@$7!"KI$0$7$/$_$rI8=`$GHw$($F$$$k$b$N(B($B$?$H$($P(B Ada95)$B$,$"$j(B
$B$^$9!#(B
$B;DG0$J$3$H$K!"(B C $B$O%P%C%U%!%*!<%P!<%U%m!<$rKI$0<jCJ$r$^$C$?$/;}$C$F$*$i$:!"(B
C++ $B$G$b$?$o$$$J$/$3$NLdBj$rH/@8$5$;$k$3$H$,$G$-$^$9!#(B
<P>
<H2><A NAME="ss5.1">5.1 C/C++ $B$N4m81$J$H$3$m(B</A>
</H2>

<P>C $B%f!<%6$O!"3NJ]$5$l$F$$$kNN0h$r1[$($k$3$H$O$"$j$($J$$$H3N>Z$G$-$J$1$l$P!"(B
$B6-3&$r%A%'%C%/$7$J$$4m81$J4X?t$r;H$&$Y$-$G$O$"$j$^$;$s!#(B
$BDL>o;HMQ$rHr$1$k$Y$-4X?t$K$O!"(Bstrcpy(3)$B!"(Bstrcat(3)$B!"(Bsprintf(3)$B$d(B gets(3)
$B$,$"$j$^$9!#(B
$B$=$NBe$o$j$K(B strncpy(3)$B$d!"(Bstrncat(3)$B!"(Bsnprintf(3)$B$d(B fgets(3)$B$r;HMQ$9$k$3$H$r(B
$B4+$a$^$9!#>\$7$/$O2<5-$GO@$8$^$9!#(B
strlen(3)$B$O(B NIL $B%-%c%i%/%?$,=*C<$K$"$k$3$H$r2>Dj$7$F$$$k$N$G!"(BNIL $B$,I,$:B8:_(B
$B$9$k$H3N?.$G$-$J$1$l$P!";HMQ$OHr$1$k$Y$-$G$9!#(B
$B$=$NB>$K$b%P%C%U%!$r1[$($F$7$^$&62$l$N$"$k4X?t(B($B$=$N;H$$J}$K$h$j$^$9$,(B)
$B$K$O!"(Bfscanf(3)$B!"(Bscanf(3)$B!"(Bvsprintf(3)$B!"(Brealpath(3)$B!"(Bgetopt(3)$B!"(Bgetpass(3)$B!"(B
streadd(3)$B$d(B strecpy(3)$B!"(Bstrtrns(3)$BEy$,$"$j$^$9!#(B
<H2><A NAME="ss5.2">5.2 C/C++ $B$N%i%$%V%i%j$K$h$k2r7h:v(B</A>
</H2>

<P>C/C++ $B$G$N2r7h:v$H$7$F!"%P%C%U%!%*!<%P!<%U%m!<$NLdBj$rJz$($F$$$J$$4X?t(B
$B%i%$%V%i%j$N;HMQ$,$"$2$i$l$^$9!#(B
<P>C $B$G%P%C%U%!%*!<%P!<%U%m!<$rKI$0!V>oEe!W<jCJ$H$7$F!"$3$l$i$NLdBj$rJz$($F(B
$B$$$J$$I8=`%i%$%V%i%j4X?t$r;HMQ$9$k$3$H$,$^$:$"$2$i$l$^$9!#(B
$B$3$N2r7hJ}K!$O(B strncpy(3)$B$H(B strncat(3)$B$H$$$&I8=`4X?t$K$H$F$b0MB8$7$F$$$^$9!#(B
$B$3$N2r7h:v$r$H$k$J$i!"$=$N;H$$J}$,0U30$HLLE]$G!"@5$7$/;H$&$3$H$,Fq$7$$$3$H$K(B
$BCm0U$,I,MW$G$9!#(B
strncpy(3)$B$O%3%T!<@h$NJ8;zNs$N=*C<$K(B NIL $B$r%;%C%H$7$J$$$N$G!"%3%T!<85$N(B
$BJ8;zNsD9$,%3%T!<@h0J>e$ND9$5$J$i$P!"(Bstrncpy(3)$B$r8F=P$7$?8e$K%3%T!<@h$N=*C<(B
$B$K(B NIL $B$r%;%C%H$9$k$3$H$rK:$l$J$$$G$/$@$5$$!#(B
strncpy(3)$B!"(Bstrncat(3)$B$H$b!"=q$-9~$_$G$-$kNN0h$N;D$j$NBg$-$5$r0z?t$GEO$9(B
$BI,MW$,$"$j$^$9$,!"$3$N;DNL$N7W;;$r$h$/4V0c$$$^$9(B($B$3$3$G4V0c$C$F$7$^$&$H!"(B
$B%P%C%U%!%*!<%P!<%U%m!<967b$r5v$7$F$7$^$&$3$H$K$J$j$^$9(B)$B!#(B
$B$I$A$i$N4X?t$b!"%P%C%U%!%*!<%P!<%U%m!<$,H/@8$7$?$+$I$&$+$r3NG'$9$kC1=c$J(B
$B$7$/$_$r;}$C$F$$$^$;$s!#:G8e$K$J$j$^$9$,!"BeBX$(4X?t$G$"$k(B strncpy(3)$B$O(B 
strcpy(3)$B$KHf$Y$F!"%Q%U%)!<%^%s%9$ONt$j$^$9!#$3$l$O(B strncpy(3)$B$,%3%T!<@h$N(B
$B;D$jNN0h$r(B 0 $B$GKd$a$k$?$a$G$9!#(B
<P>$B0lJ}!"(BOpenBSD $B$K$O(B Miller $B$H(B de Raadt [Miller 1999] $BN>;a$K$h$C$F3+H/$5$l$?(B 
strlcpy(3)$B$H(B strlcat(3)$B$,$"$j$^$9!#(B
$B=>Mh$N%3%T!<$HO"7k$H$O0[$C$?(B($B$+$D4V0c$$$K$/$$(B)$B%$%s%?%U%'!<%9$r;}$A!":G>.8B(B
$B$NEXNO$GLdBj$N2r7h$r;n$_$F$$$^$9!#(B
$B%=!<%9$H4X?t$N%I%-%e%a%s%H$O(B BSD $B%9%?%$%k$N%i%$%;%s%9$G!"(B
<A HREF="ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/strlcpy.3">ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/strlcpy.3</A>
$B$+$iMxMQ$G$-$^$9!#(B
<P>$BB>$N<h$jAH$_$H$7$F$O!"8GDjD9$N%P%C%U%!$r;H$&$+$o$j$K!"J8;zNs$9$Y$F$NNN0h$r(B
$BF0E*$K:F3NJ]$9$kJ}K!$b$"$j$^$9!#(B
$B$3$N<jK!$O0lHLE*$G!"(BGNU $B%W%m%0%i%_%s%0(B $B%,%$%I%i%$%s$G?d>)$7$F$$$^$9!#(B
$B$=$NJ}K!$N(B 1 $B$D$H$7$F<+F0E*$KJ8;zNsNN0h$N:F3NJ]$r9T$&(B C $B$N%D!<%k$G$"$k(B 
Forrest J. Cavalier III $B;a$,3+H/$7$?!V(Blibmib allocated string functions$B!W(B
$B$,$"$j$^$9!#(B 
<A HREF="http://www.mibsoftware.com/libmib/astring">http://www.mibsoftware.com/libmib/astring</A>$B$+$iMxMQ(B
$B$G$-$^$9!#(B
$B%=!<%9$O%*!<%W%s!&%=!<%9$N7A<0$r$H$C$F$$$^$9$,!"%I%-%e%a%s%H$O%*!<%W%s!&(B
$B%=!<%9$G$O$"$j$^$;$s!#$7$+$7<+M3$KF~<j$G$-$^$9!#(B
<P>$B$=$NB>$K$bLr$KN)$D$H;W$o$l$k%i%$%V%i%j$,$"$j$^$9!#(B
$B$?$H$($P!"(Bglib $B%i%$%V%i%j$O9-$/%*!<%W%s!&%=!<%9$N%W%i%C%H%U%)!<%`>e$GMxMQ$5$l(B
$B$F$$$^$9(B(GTK+ $B%D!<%k%-%C%H$O(B glib $B%i%$%V%i%j$r;HMQ$7$F$$$^$9$,!"(Bglib $B$O(B GTK+ 
$B$r;H$&$3$H$J$7$KC1FH$GMxMQ$G$-$^$9!#(B
$B:#$N;~E@$G!"(Bglib $B%i%$%V%i%j$N4X?t$,%P%C%U%!%*!<%P!<%U%m!<$rKI$0$?$a$KM-8z$+(B
$B$I$&$+$rJ,@O$7$F!"LdBj$J$$$3$H$r<($9$3$H$O$G$-$^$;$s$G$7$?$,!"4|BT$G$-(B
$B$=$&$J46$8$,$7$^$9!#(B
$B4j$o$/$P!"$3$N%I%-%e%a%s%H$N<!0J9_$NHG$G$O(B glib $B$N4X?t$,%P%C%U%!%*!<%P!<%U%m!<(B
$B$NLdBj$r2r7h$G$-$k$3$H$r3NG'$7$?$$$H;W$C$F$$$^$9!#(B
<H2><A NAME="ss5.3">5.3 C/C++ $B$N%3%s%Q%$%k;~$N2r7h:v(B</A>
</H2>

<P>$B$^$C$?$/0c$C$?4QE@$+$i2r7h$r$O$+$m$&$H$9$k$b$N$K!"NN0h$N6-3&%A%'%C%/$r(B
$B%3%s%Q%$%k;~$K9T$&$b$N$,$"$j$^$9(B([Sitaker 1999] $B$N%j%9%H$r;2>H$7$F(B
$B$/$@$5$$(B)$B!#(B
$B;d8+$G$9$,!"KI8f$K$$$m$$$m$J<jCJ$rBG$C$?Cf$N(B 1 $B$D$H$7$F!"$=$N$h$&$J%D!<%k(B
$B$OHs>o$KM-8z$G$9$,!"$3$N<jK!$@$1$GKI8f$9$k$N$O8-$$<jCJ$H$O$$$($^$;$s!#(B
$BM}M3$H$7$F(B 2 $B$D$O>e$2$i$l$^$9!#(B
$B$^$:!"$=$N$h$&$J%D!<%k$OI,MW$JKI8f$N0lIt$7$+9T$&$3$H$,$G$-$^$;$s(B($B$=$7$F(B
$B!V40`z$J!WKI8f$r9T$*$&$H$9$k$H!"DL>o$N(B 12 $B$+$i(B 30 $BG\CY$/$J$j$^$9(B)$B!#(BC $B$H(B
C++ $B$O$=$b$=$b%P%C%U%!%*!<%P!<%U%m!<$rKI$0<jCJ$r;}$A9g$o$;$F$$$^$;$s!#(B
$B<!$K!"%*!<%W%s!&%=!<%9$G$"$k%W%m%0%i%`$G$9$H!"2?$N%D!<%k$r;H$C$F%3%s%Q%$%k(B
$B$9$k$+$r7h$a$i$l$F$$$k$o$1$G$O$"$j$^$;$s!#%7%9%F%`$K$D$$$F$/$k%G%U%)%k%H$N(B
$B!VIaDL$N!W%3%s%Q%$%i$r;H$&$H%;%-%e%j%F%#$N<eE@$r$5$i$9$3$H$K$J$C$F$7$^$$(B
$B$^$9!#(B
<P>$B$5$i$KM-8z$J%D!<%k$H$7$F!V(BStackGuard$B!W$,$"$j$^$9!#$3$l$O!V%,!<%I!W$9$k(B
$B$?$a$NCM(B($B!V%+%J%j%"(B(canary)$B!W$H8F$S$^$9(B)$B$r%j%?!<%s%"%I%l%9$,=q$+$l$F$$$k(B
$BA0$KA^F~$7$FF0:n$7$^$9!#%P%C%U%!%*!<%P!<%U%m!<$,H/@8$7$F%j%?!<%s%"%I%l%9$r(B
$B=q$-49$($k$H!"%+%J%j%"$NCM$,(B($B$*$=$i$/(B)$BJQ99$5$l!"<B:]$K;HMQ$5$l$kA0$K%7%9%F%`(B
$B$,8!=P$7$^$9!#(B
$B$3$l$OHs>o$KM-8z$J$N$G$9$,!"%j%?!<%s%"%I%l%90J30$NCM(B($B$3$l$r;HMQ$7$F$b%7%9(B
$B%F%`$r967b$G$-$^$9(B)$B$r=q$-49$($k%P%C%U%!%*!<%P!<%U%m!<$K$OBP=h$G$-$^$;$s!#(B
StackGuard $B$r6/2=$7$F!"%+%J%j%"$rB>$N%G!<%?$KBP$7$F$b;H$($k$h$&$K$7$?$b$N$,!"(B
$B!V(BPointGuard$B!W$G$9!#(B
PointGuard $B$O<+F0E*$K$"$kCM(B($B$?$H$($P4X?t$N%]%$%s%?$d%m%s%0%8%c%s%W!&%P%C%U%!(B)
$B$rJ]8n$7$^$9!#(B
$B$7$+$7B>$NJQ?t$r(B PointGuard $B$r;H$C$FJ]8n$9$k>l9g!"%W%m%0%i%^$N2p:_$,I,MW$H(B
$B$J$j$^$9(B($B%W%m%0%i%^$O$I$N%G!<%?$r%+%J%j%"$GJ]8n$7$J$1$l$P$$$1$J$$$N$+$r(B
$BG'<1$7$J$1$l$P$$$1$J$$(B)$B!#(B
$B$3$l$OM-8z$JH>LL!"K\MhJ]8n$9$Y$-$J$N$KI,MW$,$J$$!"$H$&$C$+$jH=CG$7$F$7$^$$!"(B
$B$$$H$b4JC1$KJ]8n$r>JN,$7$F$7$^$&>l9g$,9M$($i$l$^$9!#(B
StackGuard $B$d(B PointGuard$B!"$^$?$=$l$HF1MM$J$b$N$K$D$$$F$N>\:Y$O(B Cowan [1999] 
$B$r;2>H$7$F$/$@$5$$!#(B
<P><B>$BLuCp!'(B</B>$BD;N`$N%+%J%j%"$O!"C:9[$G0l;@2=C:AG$NA}2C$d;@7g>uBV$r!V8!CN!W(B
$B$9$k$?$a$K;t$o$l$F$$$^$7$?!#(B
<P>$B$3$l$H4XO"$7$F!"(BLinux $B$N%+!<%M%k$r=$@5$7$F!"%9%?%C%/!&%;%0%a%s%H>e$G$N%W%m(B
$B%0%i%`$N<B9T$r6X;_$7$F$7$^$&J}K!$b$"$j$^$9!#$=$l$r9T$&$K$O%Q%C%A$,I,MW$G$9(B
(Solar Designer $B$N(B $B%Q%C%A$K4^$^$l$F$$$^$9!#(B 
<A HREF="http://www.openwall.com/linux/">http://www.openwall.com/linux/</A>)
$B$3$N%I%-%e%a%s%H$r=q$$$F$$$k;~E@$G$O!"$^$@%+!<%M%k$K<h$j9~$^$l$F$$$^$;$s!#(B
$B5;=QE*$JM}M3$N(B 1 $B$D$K!";W$C$?$[$I$=$N8z2L$,$G$J$$E@$,$"$2$i$l$^$9!#(B
$B967b<T$O!"BP>]$K$7$F$$$k%W%m%0%i%`$K$9$G$KB8:_$7$F$$$kB>$N!VLLGr$=$&$J!W>l=j(B
($B%i%$%V%i%j$d%R!<%WNN0h!"%9%?%F%#%C%/$J%G!<%?!&%;%0%a%s%HNN0h$J$I(B)$B$r8F$S=P$;(B
$B$F$7$^$&$+$i$G$9!#(B
$B$^$?(B Linux $B$O%9%?%C%/NN0h$G%W%m%0%i%`$r<B9T$9$k>l9g$,$"$j$^$9!#Nc$H$7$F!"(B
$B%7%0%J%k$d(B GCC $B$N!V%H%i%s%]%j%s!W$N<BAu$r$9$k>l9g$G$9!#(B
Solar Designer $B$N(B $B%Q%C%A$G$3$N$h$&$J%1!<%9$K$bBP1~$G$-$^$9$,!"$3$l$,%Q%C%A$r(B
$BJ#;($J$b$N$7$F$$$k860x$G$9!#(B
$B8D?ME*$K$O(B Linux $BK\N.$KAH$_9~$^$l$F$b$$$$$+$H;W$$$^$9!#$H$$$&$N$b$3$l$K$h$C$F(B
$B$$$/$V$s$+$G$b967b$,Fq$7$/$J$j$^$9$7!"4{B8$N967b$N$"$kItJ,$OKI8f$G$-$k$+$i(B
$B$G$9!#(B
$B$7$+$7(B Linus Torvalds $B;a$?$A$,9M$($F$$$k$h$&$K!"$3$N%Q%C%A$,8+$?L\$[$I$5$^(B
$B$6$^$JKI8f$,$G$-$J$$!"Hf3SE*4JC1$K$3$NKI8f$NN"$r$+$/$3$H$,$G$-$k!"$H$$$&E@(B
$B$K$D$$$F$O;d$bF10U8+$G$9!#(B
Linus Torvalds $B;a$,$3$N%Q%C%A$r:NMQ$7$J$$M}M3$K$D$$$F$O!"(B
<A HREF="http://lwn.net/980806/a/linus-noexec.html">http://lwn.net/980806/a/linus-noexec.html</A>$B$r;2>H$7$F$/$@$5$$!#(B
<P><B>$BLuCp!'(B</B>$B%H%i%s%]%j%s(B(trampoline)$B$H$O!"%W%m%0%i%`$,<B9T$7$F$$$k:GCf$K(B
$B%W%m%0%i%`<+?H$K$h$C$F@8@.$5$l$k!"8_$$$KFHN)$7$?>.$5$J%*%V%8%'%/%H!&(B
$B%3!<%I$r;X$7$^$9!#(B
<P>$BMW$9$k$K!"$^$:%W%m%0%i%`$=$N$b$N$G%P%C%U%!%*!<%P!<%U%m!<$rKI$0$h$&$K3+H/(B
$B$9$k$N$,Bg@Z$G$9!#(B
$B$=$N$h$&$K3+H/$7$?8e$K!"(BStackGuard $B$N$h$&$J%D!<%k$d%F%/%K%C%/$r;H$C$F!"(B
$B$5$i$K0BA4:v$r9V$8$F$*$/$Y$-$G$9!#(B
$B%=!<%9%3!<%I$+$i%P%C%U%!%*!<%P!<%U%m!<$rDI$$=P$;$k$@$1DI$$=P$7$?$i!"(B
StackGuard $B$O$5$i$K8z2L$rH/4x$7$^$9!#$H$$$&$N$b(B StackGuard $B$,KI8f$N$?$a$K(B
$B8F$P$l$k$h$&$J!VCWL?E*$J<eE@!W$r8:$i$9$3$H$,$G$-$k$+$i$G$9!#(B
<H2><A NAME="ss5.4">5.4 $BB>$N8@8l(B</A>
</H2>

<P>$B%P%C%U%!%*!<%P!<%U%m!<$O!"B>$N%W%m%0%i%_%s%08@8l$G$bLdBj$K$J$C$F$$$^$9!#(B
Perl $B$d(B Python$B!"(BAda95 $B$N$h$&$J%P%C%U%!%*!<%P!<%U%m!<$rKI$08@8l$G$"$C$F$b(B
$B$G$9!#(B
C $B$d(B C++ $B0J30$N8@8l$r;H$C$?$H$7$F$b!"$b$A$m$s$9$Y$F$NLdBj$r2r7h$G$-$k$o$1(B
$B$G$O$"$j$^$;$s!#(B
$B>\$7$/$O!"8eDxO@$8$k!V@5$7$$CM$G$@$18F$S=P$9$3$H!W$K$"$k(B NIL $B%-%c%i%/%?$N(B
$B07$$$r;2>H$7$F$/$@$5$$!#(B
$B$^$?8@8l$,Ds6!$7$F$$$k4pK\E*$J5!G=(B($B$?$H$($P%i%s%?%$%`!&%i%$%V%i%j(B)$B$,MxMQ$G(B
$B$-$k4D6-$G$+$D$=$N5!G=$,0BA4$G$"$k$3$H$rJ]>Z$9$k$H$$$&LdBj$b;D$C$F$$$^$9!#(B
$B$=$N$h$&$JLdBj$O$"$k$K$;$h!"%P%C%U%!%*!<%P!<%U%m!<$rKI$0$h$&!"0BA4$J%W%m(B
$B%0%i%`3+H/$r9T$&>l9g$O!"B>$N8@8l$N;HMQ$r??7u$K9M$($k$Y$-$@$H;W$$$^$9!#(B
<HR>
<A HREF="Secure-Programs-HOWTO-6.html">$B<!$N%Z!<%8(B</A>
<A HREF="Secure-Programs-HOWTO-4.html">$BA0$N%Z!<%8(B</A>
<A HREF="Secure-Programs-HOWTO.html#toc5">$BL\<!$X(B</A>
</BODY>
</HTML>