Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1918)

Unified Diff: chrome/installer/mac/third_party/bsdiff/README.chromium

Issue 2716005: Modify bsdiff 4.3 to goobsdiff, which is appropriate for use as the Mac binary differ/patcher (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/installer/mac/third_party/bsdiff/bsdiff.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/installer/mac/third_party/bsdiff/README.chromium
===================================================================
--- chrome/installer/mac/third_party/bsdiff/README.chromium (revision 49280)
+++ chrome/installer/mac/third_party/bsdiff/README.chromium (working copy)
@@ -8,7 +8,44 @@
Description:
Binary diff/patch utility. There are other copies of BSDiff in the Chromium
repository, but they're all different. The other copies are based on Mozilla's
-fork of BSDiff, which serves a different set of needs.
+fork of BSDiff, which serves a different set of needs. Relative to upstream
+BSDiff, Mozilla's version removes all compression, adds a CRC-32 check of the
+original file, replaces the custom off_t encoding with signed 32-bit
+big-endian integers, and contains a total reorganization of the code. The
+version in this directory contains no Mozilla code and builds directly on the
+upstream version. It retains and enhances the compression, uses SHA1 to check
+both the original file and the patched file, uses a different off_t encoding
+more compatible with the original, and involves minimal changes to the
+original code.
+Theoretically, a hash of the original file should be enough to guarantee data
+integrity, but in the event of algorithmic or programming bugs or other
+unexpected conditions, a hash of the patched file provides a better guarantee.
+This implementation now checks the integrity of both the original and the
+patched files. SHA1, rather than CRC-32, is used to minimize the likelihood
+that an original file that has been intentionally tampered with will produce
+an altered patched file without being detected.
+
Local Modifications:
- - Added LICENSE file by copying the license block from bsdiff.c and bspatch.c.
+ - Added LICENSE file by copying the license block from bsdiff.c and
+ bspatch.c.
+ - The following modifications are relative to the original unpatched version,
+ checked in to the Chromium repository at r49280.
+ - Created goobsdiff.gyp for GYP build system integration.
+ - Renamed bsdiff.c to goobsdiff.c and bspatch.c to goobspatch.c.
+ - Added #include <sys/types.h> to goobspatch.c so that it compiles. (Oops!)
+ - Changed the magic number in the header from BSDIFF40 to BSDIFF4G.
+ - Expanded the header to include SHA1 hashes of the original and new files,
+ and added hash checks to the patcher.
+ - Expanded the header to include the lengths of the control, diff, and extra
+ blocks in the patch file, and added patch file length validation to the
+ patcher.
+ - Replaced custom off_t encoding with signed 64-bit little-endian integers.
+ - The control, diff, and extra blocks can be compressed with bzip2 or gzip,
+ or left uncompressed, independently of one another, depending on which is
+ smallest. This often results in a net reduction in patch size of about 3%.
+ - Error messages in the patcher are slightly more descriptive.
+ - The patcher treats a few more unexpected read cases as errors than it did
+ previously. This will theoretically cause it to exit with an error instead
+ of sitting in a busy loop or crashing when certain malformatted patch files
+ are provided.
« no previous file with comments | « no previous file | chrome/installer/mac/third_party/bsdiff/bsdiff.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698