Commit Diff


commit - 593303ab69b5378ee73b91c655b29fcb96bdf410
commit + ef7196ff92a36328e82fb8b83228d475ed0155b0
blob - 73d83cfee6cba69b0b670e5f59a8b29e7cbc99fb
blob + 111ec814bd31c09485d156e50ed2d87e60a2017b
--- lib/delta.c
+++ lib/delta.c
@@ -318,7 +318,7 @@ got_delta_apply_in_mem(uint8_t *base_buf, size_t base_
 		}
 	}
 
-	if (*outsize != result_size)
+	if (err == NULL && *outsize != result_size)
 		err = got_error_msg(GOT_ERR_BAD_DELTA,
 		    "delta application result size mismatch");
 	return err;
@@ -385,12 +385,12 @@ got_delta_apply(FILE *base_file, const uint8_t *delta_
 		}
 	}
 
-	if (*outsize != result_size)
+	if (err == NULL && *outsize != result_size)
 		err = got_error_msg(GOT_ERR_BAD_DELTA,
 		    "delta application result size mismatch");
 
 	if (memstream != NULL) {
-		if (fclose(memstream) == EOF)
+		if (fclose(memstream) == EOF && err == NULL)
 			err = got_error_from_errno("fclose");
 		if (err == NULL) {
 			size_t n;