BugTrack/2059
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*更新衝突が検出されず上書きされてしまうことがある [#ubadb...
-ページ: [[BugTrack2]]
-投稿者: [[mu]]
-優先順位: 重要
-状態: 完了
-カテゴリー: 本体バグ
-投稿日: 2005-04-21 (木) 20:50:44
-バージョン:
** 修正 [#c11110e3]
- [[cvs:lib/html.php]] (1.31): ('string' == 0) may blind ...
PHPでは文字列と数値を(強引に)比較させる事は可能であるが、...
http://jp2.php.net/manual/ja/language.types.string.php#la...
**メッセージ [#e5371196]
同時更新の衝突(コリジョン)が検出されず、
先に書かれた内容が後から書かれたもので
上書きされてしまうことがありました。
調べてみたところ、
lib/html.php の edit_form で生成されている $digest ですが、
数値比較で 0 だと判断される md5 文字列の場合
((例えば"abcdefabcdefabcdefabcdefabcdefab"等))に
再初期化となっているのが原因ではないかと考えました。
対策コードの差分は以下の通りです。
lib/html.php
// Show 'edit' form
-function edit_form($page, $postdata, $digest = 0, $b_te...
+function edit_form($page, $postdata, $digest = "", $b_t...
{
global $script, $vars, $rows, $cols, $hr, $function_fr...
global $_btn_addtop, $_btn_preview, $_btn_repreview, $...
$_msg_help, $_btn_notchangetimestamp;
global $whatsnew, $_btn_template, $_btn_load, $non_lis...
global $notimeupdate;
$refer = $template = $addtag = $add_top = '';
- if ($digest == 0) $digest = md5(join('', get_source($p...
+ if ($digest == "") $digest = md5(join('', get_source($...
$checked_top = isset($vars['add_top']) ? ' checke...
$checked_time = isset($vars['notimestamp']) ? ' checke...
----
-すみません、追記です。$digest の再初期化が問題になるケー...
-お知らせありがとうございます :) デフォルト値についてはよ...
-- [[cvs:lib/html.php]] (1.31)
-修正&コミット、そしていつもありがとうございます。 -- [[m...
-こちらこそ、ありがとうございました。完了としておきます :...
- [[BugTrack/608]]
#comment
終了行:
*更新衝突が検出されず上書きされてしまうことがある [#ubadb...
-ページ: [[BugTrack2]]
-投稿者: [[mu]]
-優先順位: 重要
-状態: 完了
-カテゴリー: 本体バグ
-投稿日: 2005-04-21 (木) 20:50:44
-バージョン:
** 修正 [#c11110e3]
- [[cvs:lib/html.php]] (1.31): ('string' == 0) may blind ...
PHPでは文字列と数値を(強引に)比較させる事は可能であるが、...
http://jp2.php.net/manual/ja/language.types.string.php#la...
**メッセージ [#e5371196]
同時更新の衝突(コリジョン)が検出されず、
先に書かれた内容が後から書かれたもので
上書きされてしまうことがありました。
調べてみたところ、
lib/html.php の edit_form で生成されている $digest ですが、
数値比較で 0 だと判断される md5 文字列の場合
((例えば"abcdefabcdefabcdefabcdefabcdefab"等))に
再初期化となっているのが原因ではないかと考えました。
対策コードの差分は以下の通りです。
lib/html.php
// Show 'edit' form
-function edit_form($page, $postdata, $digest = 0, $b_te...
+function edit_form($page, $postdata, $digest = "", $b_t...
{
global $script, $vars, $rows, $cols, $hr, $function_fr...
global $_btn_addtop, $_btn_preview, $_btn_repreview, $...
$_msg_help, $_btn_notchangetimestamp;
global $whatsnew, $_btn_template, $_btn_load, $non_lis...
global $notimeupdate;
$refer = $template = $addtag = $add_top = '';
- if ($digest == 0) $digest = md5(join('', get_source($p...
+ if ($digest == "") $digest = md5(join('', get_source($...
$checked_top = isset($vars['add_top']) ? ' checke...
$checked_time = isset($vars['notimestamp']) ? ' checke...
----
-すみません、追記です。$digest の再初期化が問題になるケー...
-お知らせありがとうございます :) デフォルト値についてはよ...
-- [[cvs:lib/html.php]] (1.31)
-修正&コミット、そしていつもありがとうございます。 -- [[m...
-こちらこそ、ありがとうございました。完了としておきます :...
- [[BugTrack/608]]
#comment
ページ名: