チケット #35870

ゼロクリアの削除

登録: 2015-12-28 00:18 最終更新: 2016-02-09 22:33

報告者:
(del#24082)
担当者:
(del#24082)
チケットの種類:
状況:
完了
コンポーネント:
マイルストーン:
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし
投票
点数: 0
No votes
0.0% (0/0)
0.0% (0/0)

詳細

コンパイラの最適化により、memset()やZeroMemory()のコードが削除
されることがあるが、セキュリティ対策として意図的にゼロクリアしているコードまで
削除されている箇所がある。

対策1で進める。
なお、本対応によりユーザ見えには変化がないため、改版履歴には記載しない。

対策:
1. SecureZeroMemory()に置き換える
 MSDN上はXP以降のAPIとなっているが、実体は RtlSecureZeroMemory() というWinNT.h で定義されているインライン関数であるため、Windows95でもそのまま動く。

2. OpenSSH の explicit_bzero() のような自前の関数を使う。
/*
 * Indirect bzero through a volatile pointer to hopefully avoid
 * dead-store optimisation eliminating the call.
 */
static void (* volatile ssh_bzero)(void *, size_t) = bzero;

void
explicit_bzero(void *p, size_t n)
{
	ssh_bzero(p, n);
}

チケットの履歴 (6 件中 3 件表示)

2015-12-28 00:18 更新者: (del#24082)
  • 新しいチケット "ゼロクリアの削除" が作成されました
2015-12-28 22:43 更新者: (del#24082)
  • 詳細が更新されました
2016-01-01 17:40 更新者: (del#24082)
  • 担当者(未割り当て) から yutakapon に更新されました
  • 詳細が更新されました
2016-01-01 19:22 更新者: (del#24082)
  • コンポーネント(未割り当て) から TTSSH に更新されました
  • マイルストーン(未割り当て) から Tera Term 4.90 (完了済み) に更新されました
2016-01-01 20:07 更新者: (del#24082)
  • 解決法なし から 修正済み に更新されました
2016-02-09 22:33 更新者: (del#1144)
  • チケット完了時刻2016-02-09 22:33 に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする