禪道3.0.beta1插件安裝清除文件bug補丁下載!

2012-01-10 20:43:44
王春生
轉貼
8633
摘要:今天收到3群飛鳥網友的反饋,發現禪道3.0.beta1安裝插件的時候,會把其所在分區的...

今天收到3群飛鳥網友的反饋,發現禪道3.0.beta1安裝插件的時候,會把其所在分區的文件誤刪。這是一個非常嚴重的bug,感謝飛鳥網友的反饋,也非常抱歉,給大家造成不便和損失。

 

這個bug的緣由如下:

 

禪道插件安裝的機制是從我們的網站下載插件包,然后將其解壓縮到module/extension/ext目錄下面。這樣存在一個問題就是同一個插件的新版本安裝的時候,也會解壓縮到同樣的目錄,然后再拷貝到對應的目錄里面去。這樣就無法保證新版本插件安裝時的目錄和文件的純粹性,因為可能還包含了老版本插件已經不再使用的文件或者目錄。所以我們在3.0.beta1里面在安裝插件之前,就增加了一個邏輯,先把extension/ext/xxx目錄刪掉。問題就出現在這個代碼邏輯里面:

 

代碼:module/extension/model.php

505 public function extractPackage($extension)
506 {
507 $return->result = 'ok';
508 $return->error = '';
509
510 /* try remove pre extracted files. */
511 $extensionPath = "ext/$extension";
512 $this->classFile->removeDir($extensionPath);

 

問題就出現在511行,如果是新安裝一個插件的時候,ext/$extension這個目錄其實不并存在,file.class.php里面的removeDir()方法會先嘗試將傳入的刪除目錄取realpath,然后再進行刪除。而php里面的realpath方法對一個不存在的目錄返回值為空,結果就變成了刪除根目錄。

 

我們平時的開發機都是在linux下面。linux下面的權限機制還是非常完善的,雖然是錯誤的操作,但其實并沒有任何影響,所以就沒有呈現不良的結果。但在windows下面,問題就出現了。apache運行所用的帳號往往是當前登錄的帳號,就給刪掉了。

 

如何解決這個bug呢,請下載附件里面的model.php,將其覆蓋到禪道的model/extension/model.php,就可以了。

 

教訓:

1. 不測試的代碼肯定會有錯誤!

2. 跨平臺的測試尤其關鍵。

3. 還是linux好。:)

 

再次向大家表示歉意,希望大家能夠諒解。

 

禪道開發團隊 2012年1月10日

評論列表
Liem 2012-01-19 11:09:09
是不是路徑弄錯了?應是 module/extension/model.php
ct455332 2012-01-11 14:49:06
虧好,剛才在試驗機上測試的...D盤什么都沒剩下
wwccss 2012-01-11 14:30:43
不安裝插件的話,不會有這個問題的。下載我們的補丁文件,來修復這個問題。
Jason 2012-01-11 11:20:50
這問題搞大了,開始的時候我安裝在的筆記本的C盤,那天無緣無故的C盤空間變大,大部分軟件沒了,害得我重新安裝了系統,具體問題沒有找到,后來我將禪道安裝到我們的服務器上,今天早上無意中發現E盤空間變大了60多個G,這樣搞不行啊!
1/1
發表評論
評論通過審核后顯示。
文章分類
聯系我們

聯系人:魏中顯

電話:18561939726

Email:[email protected]

QQ:1746749398

地址:青島開發區長江路232號國貿中心C座2單元2902室

聯系人:徐賀

電話:15216484215

Email:[email protected]

QQ:1492153927

地址:青島開發區長江路232號國貿中心C座2單元2902室

聯系人:徐賀

電話:13730922971

Email:[email protected]

QQ:2845263372

地址:青島開發區長江路232號國貿中心C座2單元2902室

聯系人:孫良宇

電話:13165056632

Email:[email protected]

QQ:3137772959

地址:青島開發區長江路232號國貿中心C座2單元2902室

聯系人:徐亞京

電話:17663982076

Email:[email protected]

QQ:2679672214

地址:青島開發區長江路232號國貿中心C座2單元2902室

聯系人:劉斌

電話:17685869372

Email:[email protected]

QQ:526288068

地址:青島開發區長江路232號國貿中心C座2單元2902室

云禪道

云端的項目管理軟件

尊享禪道項目軟件收費版功能

無需維護,隨時隨地協同辦公

內置subversion和git源碼管理

每天備份,隨時轉為私有部署

免費試用
三肖中特期准黄大仙373745