Commit Diff


commit - 89a4e64fc709e3ed8df0f6d998a11599a842ca37
commit + 45202a8f5e7659326a88147e7eecbef20545add2
blob - c18f5bd03edda1728be9634cd012b8ccaa192ddd
blob + 2f68648924bc837febff7adee1dff3dc47d4f7e1
--- lib/pack.c
+++ lib/pack.c
@@ -988,7 +988,7 @@ resolve_ref_delta(struct got_delta_chain *deltas, stru
 
 	if (delta_offset >= pack->filesize)
 		return got_error(GOT_ERR_PACK_OFFSET);
-	delta_data_offset = delta_offset + tslen + sizeof(id);
+	delta_data_offset = delta_offset + tslen;
 	if (delta_data_offset >= pack->filesize)
 		return got_error(GOT_ERR_PACK_OFFSET);
 
@@ -1000,11 +1000,11 @@ resolve_ref_delta(struct got_delta_chain *deltas, stru
 
 
 	if (pack->map) {
-		size_t mapoff = (size_t)delta_offset;
+		size_t mapoff = (size_t)delta_data_offset;
 		memcpy(&id, pack->map + mapoff, sizeof(id));
 		mapoff += sizeof(id);
 		err = got_inflate_to_mem_mmap(&delta_buf, &delta_len, pack->map,
-		    mapoff, pack->filesize - delta_data_offset);
+		    mapoff, pack->filesize - mapoff);
 		if (err)
 			return err;
 	} else {