TOP > カテゴリ > JavaScript >

zlib.js 0.2.0のzip.js/zip.min.jsのバグの修正[ZIPファイルの破損]

Imayaさんが公開されている「zlib.js 0.2.0」のZIP圧縮ライブラリ「zip.js/zip.min.js」で作成したZIPファイルが破損している不具合を修正する方法です。

ZIPの破損

「zip.js/zip.min.js」で作成したZIPファイルを世界的にメジャーな「7-ZIP」で展開すると「データのペイロード後にデータが存在します」という警告メッセージが表示されます。

詳細は「データのペイロード後にデータが存在します」をご覧ください。

ソースコードの修正方法

zip.js

[誤] 276行目

endOfCentralDirectorySize = 46 + (this.comment ? this.comment.length : 0);

[正] 276行目

endOfCentralDirectorySize = 22 + (this.comment ? this.comment.length : 0);

zip.min.js

[誤]

a=new (H?Uint8Array:Array)(l+p+(46+(this.d?this.d.length:0)))

[正]

a=new (H?Uint8Array:Array)(l+p+(22+(this.d?this.d.length:0)))

不具合の内容

「ZIPセントラルディレクトリの終端レコード」のサイズが「ZIPセントラルディレクトリファイルヘッダ」のサイズになっているだけです。

この件の不具合は著者のImayaさんに伝えていません。というのは、このライブラリを作成して2、3年は更新されていないからです...





関連記事



公開日:2016年04月25日
記事NO:01917