C and C++ Binaries


MISC.PATHLENGTH : MAX_PATH上限値の超過

要旨

パス操作関数に渡される引数が、Windows APIによって定められたパラメータの MAX_PATH のサイズを超えています。

プロパティ

クラス名 MAX_PATH Exceeded
日本語クラス名 MAX_PATH上限値の超過
クラス分類 セキュリティ (security)
ニーモニック MISC.PATHLENGTH
カテゴリー
MisraC2023 MisraC2023:D.4.11 The validity of values passed to library functions shall be checked
Misra2012 Misra2012:D.4.11 The validity of values passed to library functions shall be checked
Misra2004 Misra2004:20.3 The validity of values passed to library functions shall be checked
CWE CWE:687 Function Call With Incorrectly Specified Argument Value
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで有効になっています。チェックを無効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += discard class="MAX_PATH Exceeded"

#include <shlwapi.h>
#include <string.h>

void f()
{
    char buf[1024], buf2[1024];
    memset( buf, 'a', 512 );
    memset( buf2, 'a', 512 );
    buf[512] = 0;
    buf2[512] = 0;
    PathAppendA( buf, buf2 );
}

ワーニングを引き起こす関数

CodeSonar ships with library models that allow it to functions such as Win32 PathMakeUniqueName() that take one or more arguments whose length should not exceed MAX_PATH. If one of these functions is called with a path argument longer than MAX_PATH, a warning will be issued.

If you have created a custom library model for some function f() in terms of one of these existing models, calls to f() will also be capable of triggering MAX_PATH Exceeded warnings.

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

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