-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
wstringをWCHAR[N]にコピーする処理でNUL終端が付かない不具合を修正 #1235
wstringをWCHAR[N]にコピーする処理でNUL終端が付かない不具合を修正 #1235
Conversation
正規表現で対象を抽出(対象2箇所) m/\b(.+?)\s*\.\s*copy\s*\(\s*(.+?)\s*,\s*\1\s*\.\s*length\s*\(\s*\)/
✅ Build sakura 1.0.2699 completed (commit e57f2b495f by @berryzplus) |
対象の抽出はそれで良しとして、効果の確認は個別ですよね? |
本来コピーが不要な箇所でコピーをしてる事から直したほうが良いと思います。 void CTextInputStream::ReadLineW(CNativeW& line); それはつまり上記のメソッドを追加する事になりますが、それよりとりあえず早期に不具合を直したい感じでしょうか? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
動作確認はしてませんが変更内容は問題ないと思います。
バッファオーバーランが起きうる記述のままなのが気になりますが別のPRで対処入れようと思います。
レビューありがとうございます。 |
この PR がマージされたことにより Issue #1234 が閉じられました。何をもってそれを是としましたか。 |
@beru さんには特に次のような表現に警戒心を持ってもらいたい。信頼できる者を見極めるために。
コンテキストで判断するところではありません。定義に基づいて理解すべきです。 「通常」とは? 通常でないときがあるのなら危険なのでは? 実は知らなかったのですが、operator[] は範囲外アクセスに対して、特に size() と等しい添え字に対しては以前から、デフォルトコンストラクトされた文字への参照を返していたみたいです。意外な優しさ……。 もちろん範囲外は範囲外ですから、at() などは例外を投げます。範囲外にある何がコピーされることを期待したんでしょうか。 何も確認していない。 |
@ds14050 さん |
もちろん落ちることは確認しています。 また、必ずしもレビュアに動作確認をさぼるなとは言いませんが、コードの読解が正しいことが条件になると思います。間違っていますから Issue の方を参照して下さい。 |
このPRの修正内容が不十分でまだ落ちるという事ですね? |
まぁモグラたたきいくらやってもしょうがないという事もあるので、コード変更したりレビューする側はちゃんと確認しないといけないというのはその通りではあります。 |
情報提供は Issue の方でやってるんですよ……
読まない、反応しない、理解しないことのフォローまではできません。 |
PRの方にもお願いしますね。 |
@beru さんは Issue からやってきた私を含む二人と比較して前提知識に不利があったみたいですね。その点は同情します。しかし手を抜くときはくれぐれも相手を見定めて下さい。そこは迂闊だったと思います。 |
まぁレビューする際にちゃんとロジックと問題を理解せずにコードの差異だけ見て手抜きでヨシ!としてしまうのはザル過ぎるという事ですね。。 |
引きずられて同じレベルに評価を落とすのはもったいないですから。 |
いやいや自分は結構適当にやる人間ですよ。 |
ローカルビルド環境を破壊されたままの私は、自分ができる範囲のことをしたというだけの報告です。勝手に「責められ」ないでください。 |
それも「PRしたら済む話やん?」なんです。 ごちゃごちゃしてて理解不能だ、とコメントしてあったと思います。 もしそれができないってんなら、まだその域に達してないってことなんですよね、結局。 |
何を指すかは通じているみたいですね。>ローカルビルド
私を絶望にたたき込むのがこの強さです。正論をものともしないこの強さです。 |
MinGWビルドでgoogletestのパッケージインストールを強要するのは理不尽だ、 別な話だったらすまんですが理解できてないと思います。
正論には正論を打ち返すのが礼儀ですから。 |
正論と信じられるところがあなたの強さですよ。 |
信じると言えば自分も同じ。疑うこと検証すること他者の反応を伺うことをするかどうかが分かれ目でしょうか。 |
…r1034_copy_of_wstring wstringをWCHAR[N]にコピーする処理でNUL終端が付かない不具合を修正
PR の目的
PR #1034 で入れた不具合を修正します。
カテゴリ
PR の背景
#1234 (comment) 参照。
修正対象は正規表現で抽出しました。
m/\b(.+?)\s*\.\s*copy\s*\(\s*(.+?)\s*,\s*\1\s*\.\s*length\s*\(\s*\)/
対象は2箇所です。
PR のメリット
PR のデメリット (トレードオフとかあれば)
PR の影響範囲
関連チケット
close #1234
amend #1034
参考資料