Merge branch 'np/maint-huge-delta-generation'
* np/maint-huge-delta-generation: fix >4GiB source delta assertion failuremaint
commit
e3efa9c12c
|
@ -147,6 +147,13 @@ struct delta_index * create_delta_index(const void *buf, unsigned long bufsize)
|
||||||
first byte to allow for optimizing the Rabin's polynomial
|
first byte to allow for optimizing the Rabin's polynomial
|
||||||
initialization in create_delta(). */
|
initialization in create_delta(). */
|
||||||
entries = (bufsize - 1) / RABIN_WINDOW;
|
entries = (bufsize - 1) / RABIN_WINDOW;
|
||||||
|
if (bufsize >= 0xffffffffUL) {
|
||||||
|
/*
|
||||||
|
* Current delta format can't encode offsets into
|
||||||
|
* reference buffer with more than 32 bits.
|
||||||
|
*/
|
||||||
|
entries = 0xfffffffeU / RABIN_WINDOW;
|
||||||
|
}
|
||||||
hsize = entries / 4;
|
hsize = entries / 4;
|
||||||
for (i = 4; (1u << i) < hsize && i < 31; i++);
|
for (i = 4; (1u << i) < hsize && i < 31; i++);
|
||||||
hsize = 1 << i;
|
hsize = 1 << i;
|
||||||
|
|
Loading…
Reference in New Issue