C and C++ Binaries


BADFUNC.TTYNAME : ttynameの使用

要旨

実装によっては NULL 終端の文字列を返さず、またスレッドセーフではない ttyname() を使用しています。

プロパティ

クラス名 Use of ttyname
日本語クラス名 ttynameの使用
クラス分類 セキュリティ (security)
ニーモニック BADFUNC.TTYNAME
カテゴリー
CWE CWE:676 Use of Potentially Dangerous Function
CERT-C CERT-C:CON33-C Avoid race conditions when using library functions
BSI BSI:TTYNAME Use of ttyname
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Use of ttyname"
全ての BSI 固有の BADFUNC クラスを含む BSI 関連クラスを有効にするには、 bsi 設定プリセットを使用してください。

解決法

スレッドセーフが要求される場合には ttyname() は使用しないでください。

ttyname の戻り値が NULL で終端していない可能性があることを考慮に入れてください。

問題がないことを確認できた場合は、ワーニングの stateSuppressed (抑制)に変更して除外することができます。

関連のある設定ファイルパラメータ

このクラスは一般テンプレート設定ファイルで BAD_FUNCTION_* ルールセットによって実装されています。

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。