Commit Diff


commit - aa51f4a4acac901a4f1bf4062664644ce95d3e8c
commit + 7550e799ee994b0b74689a6895f84d8aaec86f49
blob - 330dc413ad648dbbb4e71369fa0a76eecd197523
blob + bbacc26192e00fbffaf5fe865009ca9857b1da8c
--- lib/deltify.c
+++ lib/deltify.c
@@ -387,15 +387,18 @@ got_deltify(struct got_delta_instruction **deltas, int
 			    &blocklen);
 			if (err)
 				break;
-			emitdelta(deltas, ndeltas, 1,
-			    block->offset - basefile_offset0, blocklen);
+			err = emitdelta(deltas, ndeltas, 1, block->offset, blocklen);
+			if (err)
+				break;
 		} else {
 			/*
 			 * No match.
 			 * This block needs to be sourced from the file itself.
 			 */
-			emitdelta(deltas, ndeltas, 0, fileoffset - offset0,
+			err = emitdelta(deltas, ndeltas, 0, fileoffset - offset0,
 			    blocklen);
+			if (err)
+				break;
 		}
 		fileoffset += blocklen;
 		if (fseeko(f, fileoffset, SEEK_SET) == -1)