メインコンテンツ

AUTOSAR C++14 Rule M18-0-5

R2026b

The unbounded functions of library <cstring> shall not be used

説明

The unbounded functions of library <cstring> shall not be used.

根拠

ライブラリ <cstring> に含まれている非有界の関数は、バッファーに対して読み取りや書き込みを行う際に、バッファーの範囲をチェックしません。そのため、バッファーの末尾より先にアクセスすることになります。これは未定義の動作です。バッファーの末尾より先を読み取る関数には、strcpy、strcmp、strcat、strchr、strspn、strcspn、strpbrk、strrchr、strstr、strtok、strlen があります。

Polyspace 実装

コード内で以下のいずれかの名前が使用されている場合、Polyspace® は違反を報告します。

  • strcpy

  • strcmp

  • strcat

  • strchr

  • strspn

  • strcspn

  • strpbrk

  • strrchr

  • strstr

  • strtok

  • strlen

トラブルシューティング

ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。

例

すべて展開する

この例では、Polyspace は非有界の strcpy() 関数の使用に対して違反を報告します。

#include <cstring>

void foo ( const char * ptr2char )
{
   char str [ 10 ];
   strcpy ( str, ptr2char );   // Non-compliant   
}

チェック情報

グループ: 言語サポート ライブラリ
カテゴリ: Required、Automated
PQL 名: std.autosar_cpp14.M18_0_5

バージョン履歴

R2019a で導入