Vine Linux バグトラッキングシステム - Vine Linux
課題の詳細を表示
0000561Vine Linux1 バグ公開2007-11-17 15:492007-12-03 21:53
anonymous 
packager 
不明 
完了不明 
4.1 
 
kdelibs
0000561: Kofficeで保存したファイルが壊れている
このバグは、Vineのような内部コード(UTF-8)とlocale(EUC)が異っている
環境で発生します。

状況:
例えば、kwordでオブジェクトの埋め込みとして描画コンポーネントや
表計算コンポーネントを選び新規オブジェクトを作成する。
この文章をデフォルトのOpen Document形式で保存する。

再度この保存ファイルをkwordで読み込むと、kofficeのドキュメントでない
と言われ開く事が出来ない。実際このファイルは壊れている。

保存失敗のエラーも出ないのでこれはかなり衝撃的である。

理由:
kdelibsのkio::kzipでUTF-8以外のlocaleのファイル名を扱う部分に
バグがあるため。この現象はkofficeに限らず、KDEでzip圧縮を行なう時、
ファイル名に日本語を含むと必ず発生し、生成された圧縮ファイルは
壊れている。

ファイル名に日本語を使わなければ回避出来る訳だが、上記の例の様に
Open Document fileの実体はzip圧縮ファイルであり、kofficeは新規埋め込み
オブジェクトに日本語名を自動的に付け、これを変更することが出来ないので
kofficeでは対処が難しい。

解決策
kdelibsのkio/kio/kzip.cppは、異なるlocaleに対する処理をほぼ正しく行なって
いるのだが、残念な事に数ヶ所、encodeしたstring(QCString)の長さと
元のstring(QString)の長さを取り違えて使っている(よくやるミスですね)。
そこを修正すると良い。
以下に添付するpatchをkio/kio/kizp.cppにあてると解決する。このpatchの影響範囲は
きわめて限定的なので深刻な事が起きる可能性はほどんとないので、出来れば対応して
頂ける事を望みます。
設定されていません。
diff kzip.cpp.diff (3,125) 2007-11-17 15:49
http://mantis.vinelinux.org/file_download.php?file_id=142&type=bug
課題の履歴
2007-11-17 15:49anonymous添付ファイル追加: kzip.cpp.diff
2007-11-17 15:49anonymous新規課題
2007-11-26 17:42anonymousコメント追加: 0002703
2007-11-26 18:36kazutaka担当者 => packager
2007-11-26 18:36kazutaka状態新規 => テスト待ち
2007-11-26 18:36kazutakaコメント追加: 0002704
2007-12-01 01:33anonymousコメント追加: 0002705
2007-12-03 21:53kazutaka状態テスト待ち => 完了
2007-12-03 21:53kazutakaコメント追加: 0002706

コメント
(0002703)
anonymous   
2007-11-26 17:42   
patchを当てたパッケージをincomingにputしました。
埋め込みオブジェクトを含むドキュメントが壊れないことを確認してあります。
そのうちミラーに回ると思います。
(0002704)
kazutaka   
2007-11-26 18:36   
> patchを当てたパッケージをincomingにputしました。
> 埋め込みオブジェクトを含むドキュメントが壊れないことを確認してあります。

対応ありがとうございます。

確認待ちに変更しておきます。

ハラダ
(0002705)
anonymous   
2007-12-01 01:33   
> > patchを当てたパッケージをincomingにputしました。
> > 埋め込みオブジェクトを含むドキュメントが壊れないことを確認してあります。
>
> 対応ありがとうございます。
>
> 確認待ちに変更しておきます。

よく作法が判らないのですが、このバグの投稿者です。
(誰の確認待ちなのでしょうか?投稿者なのでしょうか?
もしそうであるならば返事が遅くて本当に申し訳ありません)

私も正常に動く事を確認しました。
#これでcloseにして良いのではないでしょうか?

あと、BTS 559 も既に確認ずみです。こちらも
closeして良いのではないでしょうか?

対応してくださった皆さんにとても感謝しております。
本当にありがとうございます。
(0002706)
kazutaka   
2007-12-03 21:53   
> よく作法が判らないのですが、このバグの投稿者です。
> (誰の確認待ちなのでしょうか?投稿者なのでしょうか?
> もしそうであるならば返事が遅くて本当に申し訳ありません)
>
> 私も正常に動く事を確認しました。
> #これでcloseにして良いのではないでしょうか?

確認ありがとうございます。

完了にしておきます。

ちなみに、内容にもよりますができるだけ元投稿者の方にも
確認してもらえると助かります。
(しばらく待って誰からもリプライが無ければ代わりに閉じますが)

ハラダ