アカウント名:
パスワード:
> ファイルを読むだけで鼻から悪魔が出る可能性があるのか…
ここの原文は以下のようになっていて undefined behavior (鼻から悪魔) というわけではなくデータの内容が未定義というだけです:
https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileap... [microsoft.com]> the contents of the file between the old end of the file and the new end of the file are not defined
あと、このデータ内容が未定義という仕様は Windows 95 の実装を考慮した記述になっているせいでWindows NT 系なら seek して飛ばして書いたところはゼロクリアされることが保証されているとか:
https://twitter.com/shirouzu/status/1125975975735377920 [twitter.com]> MSの生き字引、レイモンド・チェンによると(ACLなどない)Win95ではSetEndOfFileでゼロクリアしていなかったらしい。> ドキュメントに保証する記述が無いのは、そのためと。> https://devblogs.microsoft.com/oldnewthing/?p=45171 [microsoft.com]
https://twitter.com/shirouzu/status/1125977301831671808 [twitter.com]> それに関して「(ファイルシステム部が)NT系なら拡張部分を0と仮定してよい」と書いてあった。
そのセクターに書かれていた古いデータが読めたりするとセキュリティ的な問題が生じるわけで、モダンなOSであれば 0 フィルされていることを期待しても大丈夫な筈です。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日々是ハック也 -- あるハードコアバイナリアン
元の EOF の位置と新しい位置の間にあるファイルの内容は未定義です。 (スコア:0)
ファイルの内容は不定です、ならまあゴミデータか何か訳わからんけど何がしかのバイト列が読み出されてくるんだろうな、と期待できるけど、未定義ですとか言われちゃうと本当に悪魔から核ミサイルまで何でも出てくる可能性があるってことになるが。
Re:元の EOF の位置と新しい位置の間にあるファイルの内容は未定義です。 (スコア:2, 参考になる)
> ファイルを読むだけで鼻から悪魔が出る可能性があるのか…
ここの原文は以下のようになっていて undefined behavior (鼻から悪魔) というわけではなく
データの内容が未定義というだけです:
https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileap... [microsoft.com]
> the contents of the file between the old end of the file and the new end of the file are not defined
あと、このデータ内容が未定義という仕様は Windows 95 の実装を考慮した記述になっているせいで
Windows NT 系なら seek して飛ばして書いたところはゼロクリアされることが保証されているとか:
https://twitter.com/shirouzu/status/1125975975735377920 [twitter.com]
> MSの生き字引、レイモンド・チェンによると(ACLなどない)Win95ではSetEndOfFileでゼロクリアしていなかったらしい。
> ドキュメントに保証する記述が無いのは、そのためと。
> https://devblogs.microsoft.com/oldnewthing/?p=45171 [microsoft.com]
https://twitter.com/shirouzu/status/1125977301831671808 [twitter.com]
> それに関して「(ファイルシステム部が)NT系なら拡張部分を0と仮定してよい」と書いてあった。
そのセクターに書かれていた古いデータが読めたりするとセキュリティ的な問題が生じるわけで、
モダンなOSであれば 0 フィルされていることを期待しても大丈夫な筈です。