From fed1ef9550d528dffa8891e8b2f49b486c7985bc Mon Sep 17 00:00:00 2001
From: Martin Koegler <martin.koegler@chello.at>
Date: Thu, 10 Aug 2017 20:13:09 +0200
Subject: [PATCH] diff-delta: do not allow delta offset truncation

Prevent generating delta offsets beyond 4G, as the xdelta used in
the pack format cannot represent such large offset.

Signed-off-by: Martin Koegler <martin.koegler@chello.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 diff-delta.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/diff-delta.c b/diff-delta.c
index 3797ce6041..ea710c44ce 100644
--- a/diff-delta.c
+++ b/diff-delta.c
@@ -452,6 +452,9 @@ create_delta(const struct delta_index *index,
 			moff += msize;
 			msize = left;
 
+			if (moff > 0xffffffff)
+				msize = 0;
+
 			if (msize < 4096) {
 				int j;
 				val = 0;
-- 
2.48.1