4.3.13 -errsecurity=v
-errsecurity オプションを使用して、コードのセキュリティーに問題がないか検査することができます。
v には、次のいずれかを指定します。
表 4–5
-errsecurity のフラグ
値
|
意味
|
core
|
このレベルでは、たいていの場合で安全でない、または検査することの難しいソースコードの構文がないかどうかを検査します。このレベルで行われる検査には次のものがあります。
-
printf() および scanf() 系の関数での変数書式文字列の使用
-
scanf() 関数における非結合文字列 (%s) 形式の使用
-
安全な使用法のない関数の使用 (gets()、cftime()、ascftime()、creat())
-
O_CREAT と組み合わせた open() の不正使用
このレベルで警告が生成されるソースコードはバグと考えてください。問題のコードを変更することを推奨します。どんな場合でも、単純明快でより安全な別の方法があります。
|
standard
|
このレベルの検査には、core レベルの検査に加えて、安全かもしれないが、より良い別の方法がある構文の検査があります。新しく作成したコードの検査には、このレベルを推奨します。このレベルで追加される検査には、次のものがあります。
|
extended
|
このレベルでは、core および standard レベルの検査を含む完全な検査が行われます。また、状況によっては安全でない可能性がある構文について、多数の警告が生成されます。このレベルの検査は、コードを見直す際の一助になりますが、許容しうるソースコードが守る必要のある基準と考える必要はありません。このレベルで追加される検査には、次のものがあります。
|
%none
|
-errsecurity 検査を無効にします。
|
-errsecurity の値が指定されていない場合は、-errsecurity=%none に設定されます。-errsecurity は指定されているが、引数が指定されていない場合は、-errsecurity=standard に設定されます。