*プレビュー表示後、衝突を検出できなくなることがある [#v1771587]

-ページ: BugTrack
-投稿者: [[くさかべ]]
-優先順位: 普通
-優先順位: 重要
-状態: 提案
-カテゴリー: 本体バグ
-投稿日: 2004-05-28 (金) 00:18:23
-バージョン: 1.4.3

**メッセージ [#n6afaf57]
プレビュー表示後、衝突を検出できなくなることがあります

-再現
+ページ名はなんでもいいので"wiki"とだけ書いて、ページを作成する。
+作成したページを編集するウィンドウを2個開く。~
(この時、ページのHTMLソースを見てhiddenのdigestの値がf97581f30de2b54d6d34330630b44657になってることを確認する)
+片方のWindowで"wiki"を"wiki2"にして、直ぐ「ページの更新」ボタンを押し、ページを書き換える。
+もう片方のWindowで"wiki"を"wiki3"にして、「プレビュー」
ボタンを押し、プレビュー画面から「ページの更新」ボタンを押すと、衝突検出の画面が表示されずに、ページを上書きしてしまう。~
(プレビュー時、ページのHTMLソースを見てhiddenのdigestの値がbbd593b29af1d6a066fceb9893ee193aに変わっていることを確認する)
--"wiki"ではなく、"pukiwiki"という文字列で同じことをやると衝突が検出されます。

-原因
--html.php:135行目の比較式にバグがあるため??~
"997581f30de2b54d6d34330630b44657" == 0は偽だが、~
"f97581f30de2b54d6d34330630b44657" == 0は真になる。
http://jp.php.net/manual/ja/language.types.string.php#language.types.string.conversion
--md5の値から考えると40%くらいの確率で発生するようです。

-パッチ
--↓これで直ったように見えます。

 --- html.php.org        2004-05-27 23:36:35.000000000 +0900
 +++ html.php    2004-05-28 00:12:48.000000000 +0900
 @@ -132,7 +132,7 @@
 
         $refer = $template = $addtag = $add_top = '';
 
 -       if ($digest == 0) {
 +       if ($digest === 0) {
                 $digest = md5(join('',get_source($page)));
         }



----
-「プレビュー」→「更新」の間に別の誰かがページを更新した場合、気付かずに上書きしてしまう可能性がある、ということです。パッチを当てて様子をみていますが、いまのところ問題は起きていません。 -- [[くさかべ]] &new{2004-06-06 (日) 06:17:42};
-1.4.4でも修正されていないため、優先順位を一つ上げて"重要"としておきます。 -- [[Ratbeta]] &new{2004-09-20 (月) 10:08:36};

#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.147 sec.

OSDN