配列の境界を超えてアクセスしてもエラーが発生しない
2019/07/23
マシンコード (DLL) でコンパイルした実行ファイル内で、可変長配列に境界を超えてアクセスした場合に実行時エラーが発生しない不具合が確認されています。
Bug ID | 2947 | ||||||
---|---|---|---|---|---|---|---|
Product | PowerBuilder EN/JP | ||||||
ステータス | Appeonにて検証中 | ||||||
発生バージョン | EN | 12.6以前 | 2017 | 2017 R2 | 2017 R3 | 2019 | |
JP | 12.6以前 | - | 2017 R2 | 2017 R3 |
※ :発生バージョン :解決済み、未発生 :未確認
詳細
可変長配列 (変数宣言時にサイズを指定しない配列) で配列の境界を超えてアクセスした際に、プロジェクトのコード生成オプションで P コード (PBD) を指定してコンパイルした場合は「配列の境界を超えています」という実行時エラーが発生しアプリケーションが終了しますが、マシンコード (DLL) でコンパイルした場合はエラーが発生せず、処理が続行されます。
回避策
本不具合に関する回避策は以下となります。
- Pコード (PBD) でコンパイルする
- マシンコード (DLL) でコンパイルする場合には回避方法はありません。Pコード (PBD) でコンパイルしてください。