| 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.
|
|
|