ISO/IEC TR 24772-2:2020 プログラミング言語—プログラミング言語の脆弱性を回避するためのガイダンス—パート2:エイダ | ページ 7

※一部、英文及び仏文を自動翻訳した日本語訳を使用しています。

索引

異常な表現、1

中絶 , 19, 33, 35, 36

アクセス オブジェクト、1

アクセスタイプ、2

アクセス値、2

サブプログラムへのアクセス、1

アロケータ、2

AMV — データの型破壊再解釈、25

アスペクト指定、2

アトミック、2, 4, 33, 36

属性、2

'アクセス、22, 23

'住所、22, 23, 37

'位置合わせ、5

'Component_Size, 5

' 指数, 11

'まず、21, 22, 34

'画像、20

'最後、22, 34

'長さ、21, 22

'範囲、22

'サイズ、5

'Unchecked_Access 、7, 23, 31

'有効、30

'アクセス、13, 23

'呼び出し可能、35, 36

'終了、35, 36

'有効、10, 18

'有効、17

ビット順序、2, 3

BJL—名前空間の問題、17

境界誤差、2

BQF — 未指定の動作、32

BRS —あいまいな言語機能、32

ケースの選択、2

ケース式、2

ケースステートメント、2, 11, 20

CCB — 列挙子の問題、11

CGA - 並行性 - アクティベーション、35

CGM - プロトコル ロック エラー、36

CGS — 並行性 — 早期終了、36

CGT — 並行性 — 指示された終了、35

CGX — 同時データアクセス、36

CJM—文字列終端、12

CLL — Switch ステートメントと静的分析、20

編集単位、2

構成プラグマ、2, 6

制御型、2

CSJ — パラメータと戻り値の受け渡し、22

DCM — スタック フレームへのダングリング リファレンス、22

デッドストア、2

デフォルト式、2

ディスクリートタイプ、2

判別式、2, 34

DJS — 言語間通話、29

エンディアン、3

列挙表現節、3

列挙型、3, 4

EOJ—制御フローの境界、21

誤った実行、3

EWD — 非構造化プログラミング、22

EWF — 未定義の動作、33

例外、3, 4, 5, 6, 9, 10, 12, 13, 17, 18, 21, 24, 29, 30, 31, 32, 34, 35, 36, 37

Constraint_Error, 4, 5, 13, 14, 20, 34

Program_Error 、4, 5, 32

ストレージ_エラー、 4, 24

Tasking_Error, 4, 35

例外情報、34

拡張名、3

明示的な変換、5, 9

FAB — 実装定義の動作、34

FIF — 算術ラップアラウンド エラー、14

固定小数点型、3

FLC — 数値変換エラー、11

GDL - 再帰、24

ジェネリック・フォーマル・サブプログラム、3

HCB — バッファ境界違反 (バッファ オーバーフロー)、12

HFC — ポインター型変換、13

隠蔽、3, 4, 37

すべての可視性から隠されている、4

直接見えないように隠し、4

HJW — ライブラリルーチンからの予期しない例外、30

同形異義語、3

冪等の動作、3

識別子、3

識別子の長さ、15

IHN型システム 9

実装定義、3, 5

暗黙の変換、5, 9

国際文字セット、15

JCW — 演算子の優先順位/評価順序、18

ジャンクの初期化、18

KOA - 間違っている可能性が高い表現、19

言語の概念、4, 12, 13, 14, 15, 20, 21, 26, 28, 30, 37

言語の脆弱性

ライブラリ関数への引数の受け渡し [TRJ], 27, 28, 29

算術ラップアラウンド エラー [FIF], 14

ビット表現 [STR], 10

バッファ境界違反 (バッファ オーバーフロー) [HCB], 12

明確な名前の選択[NAI], 15

同時実行性 - アクティベーション [CGA], 35

同時実行性 - 直接終了 [CGT], 35

並行性 — 早期終了 [CGS], 36

同時データ アクセス [CGX], 36

ヒープへのダングリング参照 [XYK], 14

スタック フレームへのダングリング参照 [DCM], 22

デッドおよび非アクティブ化されたコード [XYQ], 20

デッドストア[WXQ], 16

制御フローの境界 [EOJ], 21

非推奨の言語機能 [MEM], 35

動的にリンクされたコードと自己修正コード [NYY], 30

列挙子の問題[CCB], 11

追加の組み込み関数 [LRM], 29

浮動小数点演算 [PLF], 10

識別子名の再利用 [YOW], 16

無視されたエラー ステータスと未処理の例外 [OYB], 24

実装定義の動作[FAB], 34

継承[RIP], 27

変数の初期化[LAV], 17

言語間通話[DJS], 29

ライブラリ署名 [NSQ], 30

間違っている可能性が高い表現 [KOA], 19

ループ制御変数 [TEX], 21

メモリ リーク [XYL], 26

名前空間の問題[BJL], 17

数値変換エラー [FLC], 11

あいまいな言語機能 [BRS], 32

1 エラーでオフ [XZH], 21

演算子の優先順位/評価の順序 [JCW], 18

パラメータと戻り値を渡す[CSJ], 22

ポインタ演算[RVG], 13

ポインター型変換 [HFC], 13

プロトコル ロック エラー [CGM], 36

本質的に危険な操作の提供 [SKL], 31

再帰[GDL], 24

外部フォーマット文字列への依存[SHL], 37

副作用と評価の順序[SAM], 18

文字列終端 [CJM], 12

サブプログラム署名の不一致 [OTR], 23

言語定義のランタイム チェックの抑制 [MXB], 31

Switch ステートメントと静的解析 [CLL], 20

テンプレートとジェネリック [SYM], 26

型システム[HIM], 9

データの型破壊再解釈[AMV], 25

ライブラリ ルーチンからの予期しない例外 [HJW], 30

チェックされていない配列インデックス [XYZ], 12

未定義の動作 [EWF], 33

未指定の動作 [BQF], 32

非構造化プログラミング [EWD], 22

未使用変数 [YZS], 16

乗算と除算のためのシフト操作の使用 [PIK], 15

言語の脆弱性未チェックの配列コピー [XYW], 13

LAV—変数の初期化、17

LRM - エクストラ組み込み関数、29

MEM — 非推奨の言語機能、35

混合ケーシング、15

モジュラータイプ 3

MXB — 言語定義の実行時チェックの抑制、31

NAI — 明確な名前の選択、15

NSQ - ライブラリ署名、30

NYY — 動的にリンクされたコードと自己修正コード、30

廃止された機能、3

操作属性と表現属性、3, 5

OTR — サブプログラム署名の不一致、23

優先指標、3

OYB — 無視されたエラー ステータスと未処理の例外、24

パーティション、3

PIK — 乗算と除算にシフト演算を使用する、15

PLF — 浮動小数点演算、10

ポインター、4, 17

多相変数、5

事後条件、29

プラグマ、4, 31

構成プラグマ、2

プラグマ アトミック、5, 36

pragma Atomic_Components, 5, 36

プラグマ規約、5, 24, 30

pragma Default_Storage_Pool 、7

プラグマ Detect_Blocking, 5

プラグマ Discard_Names, 6

プラグマ エクスポート、6, 24, 30

実用的なインポート、6, 24, 25, 30

プラグマ Normalize_Scalars, 6, 17, 18

プラグマパック、6

プラグマ制限、6, 7, 31, 32, 35, 37

プラグマ抑制、6, 7, 13, 31, 33

プラグマ未チェック共用体、6

プラグマ揮発性、6, 36

pragma Volatile_Components, 6, 36

前提条件、29

プログラム検証、29

範囲チェック、4

レコード表現条項、4

RIP—継承、27

RVG — ポインター演算、13

SAM — 副作用と評価の順序、18

スカラー型、4

別編・6

SHL — 外部フォーマット文字列への依存, 37

単数形・複数形 15

SKL — 本質的に危険な操作の提供、31

静的表現、4

保管場所の属性、4

ストレージ プール、2, 4, 6, 7, 26

ストレージ・サブプール、4, 6, 26

STR — ビット表現、10

サブタイプ宣言、4

SYM — テンプレートとジェネリック、26

記号と規則、1

タスク、4, 36

用語と定義、1

TEX — ループ制御変数、21

TRJ — ライブラリ関数への引数の受け渡し、27, 28, 29

型変換、4, 5, 13

型不変量、29

未確認の変換、5, 9

Unchecked_Conversion 、5, 7, 10, 25, 31, 33

アンダースコアとピリオド、15

安全でないプログラミング、7, 11, 12, 13, 14, 15, 20, 21, 26, 28, 30, 31, 37

未使用の変数、4

ユーザー定義の浮動小数点型、7

ユーザー定義のスカラー型、7

揮発性、4, 16, 36

WXQ - デッド ストア、16

XYK — ヒープへのダングリング参照、14

XYL — メモリ リーク、26

XYQ — デッドおよび非アクティブ化されたコード、20

XYW - チェックされていない配列のコピー、13

XYZ - チェックされていない配列インデックス、12

XZH — オフ バイ ワン エラー、21

YOW — 識別子名の再利用、16

YZS — 未使用の変数、16

Index

Abnormal representation, 1

abort , 19, 33, 35, 36

Access object, 1

Access type, 2

Access value, 2

Access-to-subprogram, 1

Allocator, 2

AMV — Type-breaking Reinterpretation of Data, 25

Aspect specification, 2

Atomic, 2, 4, 33, 36

Attribute, 2

'Access, 22, 23

'Address, 22, 23, 37

'Alignment, 5

'Component_Size, 5

'Exponent, 11

'First, 21, 22, 34

'Image, 20

'Last, 22, 34

'Length, 21, 22

'Range, 22

'Size, 5

'Unchecked_Access , 7, 23, 31

‘Valid, 30

‘Access, 13, 23

‘Callable, 35, 36

‘Terminated, 35, 36

‘Valid, 10, 18

‘Valid, 17

Bit ordering, 2, 3

BJL — Namespace Issues, 17

Bounded Error, 2

BQF — Unspecified Behaviour, 32

BRS — Obscure Language Features, 32

Case choices, 2

Case expression, 2

Case statement, 2, 11, 20

CCB — Enumerator Issues, 11

CGA — Concurrency — Activation, 35

CGM — Protocol Lock Errors, 36

CGS — Concurrency — Premature Termination, 36

CGT — Concurrency — Directed termination, 35

CGX — Concurrent Data Access, 36

CJM — String Termination, 12

CLL — Switch Statements and Static Analysis, 20

Compilation unit, 2

Configuration pragma, 2, 6

Controlled type, 2

CSJ — Passing Parameters and Return Values, 22

DCM — Dangling References to Stack Frames, 22

Dead store, 2

Default expression, 2

Discrete type, 2

Discriminant, 2, 34

DJS — Inter-language Calling, 29

Endianness, 3

Enumeration Representation Clause, 3

Enumeration type, 3, 4

EOJ — Demarcation of Control Flow, 21

Erroneous execution, 3

EWD — Unstructured Programming, 22

EWF — Undefined Behaviour, 33

Exception, 3, 4, 5, 6, 9, 10, 12, 13, 17, 18, 21, 24, 29, 30, 31, 32, 34, 35, 36, 37

Constraint_Error, 4, 5, 13, 14, 20, 34

Program_Error, 4, 5, 32

Storage_Error, 4, 24

Tasking_Error, 4, 35

Exception Information, 34

Expanded name, 3

Explicit conversions, 5, 9

FAB — Implementation-Defined Behaviour, 34

FIF — Arithmetic Wrap-around Error, 14

Fixed-point types, 3

FLC — Numeric Conversion Errors, 11

GDL — Recursion, 24

Generic formal subprogram, 3

HCB — Buffer Boundary Violation (Buffer Overflow), 12

HFC — Pointer Type Conversions, 13

Hiding, 3, 4, 37

hidden from all visibility, 4

hidden from direct visibility, 4

HJW — Unanticipated Exceptions from Library Routines, 30

Homograph, 3

Idempotent behaviour, 3

Identifier, 3

Identifier length, 15

IHN–Type System, 9

Implementation defined, 3, 5

Implicit conversions, 5, 9

International character sets, 15

JCW — Operator Precedence/Order of Evaluation, 18

Junk initialization, 18

KOA — Likely Incorrect Expression, 19

Language concepts, 4, 12, 13, 14, 15, 20, 21, 26, 28, 30, 37

Language Vulnerabilities

Argument Passing to Library Functions [TRJ], 27, 28, 29

Arithmetic Wrap-around Error [FIF], 14

Bit Representation [STR], 10

Buffer Boundary Violation (Buffer Overflow) [HCB], 12

Choice of Clear Names [NAI], 15

Concurrency — Activation [CGA], 35

Concurrency — Directed termination [CGT], 35

Concurrency — Premature Termination [CGS], 36

Concurrent Data Access [CGX], 36

Dangling Reference to Heap [XYK], 14

Dangling References to Stack Frames [DCM], 22

Dead and Deactivated Code [XYQ], 20

Dead store [WXQ], 16

Demarcation of Control Flow [EOJ], 21

Deprecated Language Features [MEM], 35

Dynamically-linked Code and Self-modifying Code [NYY], 30

Enumerator Issues [CCB], 11

Extra Intrinsics [LRM], 29

Floating-point Arithmetic [PLF], 10

Identifier Name Reuse [YOW], 16

Ignored Error Status and Unhandled Exceptions [OYB], 24

Implementation-Defined Behaviour [FAB], 34

Inheritance [RIP], 27

Initialization of Variables [LAV], 17

Inter-language Calling [DJS], 29

Library Signature [NSQ], 30

Likely Incorrect Expression [KOA], 19

Loop Control Variables [TEX], 21

Memory Leak [XYL], 26

Namespace Issues [BJL], 17

Numeric Conversion Errors [FLC], 11

Obscure Language Features [BRS], 32

Off-by-one Error [XZH], 21

Operator Precedence/Order of Evaluation [JCW], 18

Passing Parameters and Return Values [CSJ], 22

Pointer Arithmetic [RVG], 13

Pointer Type Conversions [HFC], 13

Protocol Lock Errors [CGM], 36

Provision of Inherently Unsafe Operations [SKL], 31

Recursion [GDL], 24

Reliance on external format strings [SHL], 37

Side-effects and Order of Evaluation [SAM], 18

String Termination [CJM], 12

Subprogram Signature Mismatch [OTR], 23

Suppression of Language-defined Run-time Checking [MXB], 31

Switch Statements and Static Analysis [CLL], 20

Templates and Generics [SYM], 26

Type System [IHN], 9

Type-breaking Reinterpretation of Data [AMV], 25

Unanticipated Exceptions from Library Routines [HJW], 30

Unchecked Array Indexing [XYZ], 12

Undefined Behaviour [EWF], 33

Unspecified Behaviour [BQF], 32

Unstructured Programming [EWD], 22

Unused Variable [YZS], 16

Using Shift Operations for Multiplication and Division [PIK], 15

Language Vulnerability Unchecked Array Copying [XYW], 13

LAV — Initialization of Variables, 17

LRM — Extra Intrinsics, 29

MEM — Deprecated Language Features, 35

Mixed casing, 15

Modular type, 3

MXB — Suppression of Language-defined Run-time Checking, 31

NAI — Choice of Clear Names, 15

NSQ — Library Signature, 30

NYY — Dynamically-linked Code and Self-modifying Code, 30

Obsolescent features, 3

Operational and Representation Attributes, 3, 5

OTR — Subprogram Signature Mismatch, 23

Overriding indicators, 3

OYB — Ignored Error Status and Unhandled Exceptions, 24

Partition, 3

PIK — Using Shift Operations for Multiplication and Division, 15

PLF — Floating-point Arithmetic, 10

Pointer, 4, 17

Polymorphic Variable, 5

Postconditions, 29

Pragma, 4, 31

Configuration pragma, 2

pragma Atomic, 5, 36

pragma Atomic_Components, 5, 36

pragma Convention, 5, 24, 30

pragma Default_Storage_Pool , 7

pragma Detect_Blocking, 5

pragma Discard_Names, 6

pragma Export, 6, 24, 30

pragma Import, 6, 24, 25, 30

pragma Normalize_Scalars, 6, 17, 18

pragma Pack , 6

pragma Restrictions, 6, 7, 31, 32, 35, 37

pragma Suppress, 6, 7, 13, 31, 33

pragma Unchecked Union, 6

pragma Volatile, 6, 36

pragma Volatile_Components, 6, 36

Preconditions, 29

Program verification, 29

Range check, 4

Record Representation Clauses, 4

RIP — Inheritance, 27

RVG — Pointer Arithmetic, 13

SAM — Side-effects and Order of Evaluation, 18

Scalar type, 4

Separate Compilation, 6

SHL — Reliance on external format strings, 37

Singular/plural forms, 15

SKL — Provision of Inherently Unsafe Operations, 31

Static expressions, 4

Storage Place Attributes, 4

Storage pool, 2, 4, 6, 7, 26

Storage subpool, 4, 6, 26

STR — Bit Representation, 10

Subtype declaration, 4

SYM — Templates and Generics, 26

Symbols and conventions, 1

Task, 4, 36

Terms and definitions, 1

TEX — Loop Control Variables, 21

TRJ — Argument Passing to Library Functions, 27, 28, 29

Type conversion, 4, 5, 13

Type invariants, 29

Unchecked conversions, 5, 9

Unchecked_Conversion, 5, 7, 10, 25, 31, 33

Underscores and periods, 15

Unsafe Programming, 7, 11, 12, 13, 14, 15, 20, 21, 26, 28, 30, 31, 37

Unused variable, 4

User-defined floating-point types, 7

User-defined scalar types, 7

Volatile, 4, 16, 36

WXQ — Dead store, 16

XYK — Dangling Reference to Heap, 14

XYL — Memory Leak, 26

XYQ — Dead and Deactivated Code, 20

XYW — Unchecked Array Copying, 13

XYZ — Unchecked Array Indexing, 12

XZH — Off-by-one Error, 21

YOW — Identifier Name Reuse, 16

YZS — Unused Variable, 16