Commit Diff


commit - 87c99799b99f175701d809cb558a7ff73eb551b1
commit + 6845d2847706fc21a9a908825e35495ee75ac5e8
blob - 2679f50f17305c2de183d1a30d7f358ea5e0730d
blob + 5a8a6951f9a6a2d428c127cfd94ad1c2f20be268
--- lib/pack.c
+++ lib/pack.c
@@ -989,7 +989,7 @@ get_delta_sizes(uint64_t *base_size, uint64_t *result_
 	if (delta_file == NULL)
 		return got_error_from_errno();
 
-	if (fseeko(delta_file, delta->data_offset, SEEK_CUR) != 0) {
+	if (fseeko(delta_file, delta->data_offset, SEEK_SET) != 0) {
 		err = got_error_from_errno();
 		fclose(delta_file);
 		return err;
@@ -1242,7 +1242,7 @@ dump_delta_chain_to_file(struct got_delta_chain *delta
 				err = got_error_from_errno();
 				goto done;
 			}
-			if (fseeko(delta_file, delta->data_offset, SEEK_CUR)
+			if (fseeko(delta_file, delta->data_offset, SEEK_SET)
 			    != 0) {
 				fclose(delta_file);
 				err = got_error_from_errno();
@@ -1388,7 +1388,7 @@ dump_delta_chain_to_mem(uint8_t **outbuf, size_t *outl
 				err = got_error_from_errno();
 				goto done;
 			}
-			if (fseeko(delta_file, delta->data_offset, SEEK_CUR)
+			if (fseeko(delta_file, delta->data_offset, SEEK_SET)
 			    != 0) {
 				fclose(delta_file);
 				err = got_error_from_errno();