Commit b95c53dfde0b4b71d68386b5a6e362877bba1d43

Omar Polo 2022-03-12T16:01:09

apply_patch: move sanity check early in recv_patch

diff --git a/lib/patch.c b/lib/patch.c
index 6cc8533..957d639 100644
--- a/lib/patch.c
+++ b/lib/patch.c
@@ -172,6 +172,10 @@ recv_patch(struct imsgbuf *ibuf, int *done, struct got_patch *p)
 		err = got_error_from_errno("strdup");
 		goto done;
 	}
+	if (p->old == NULL && p->new == NULL) {
+		err = got_error(GOT_ERR_PATCH_MALFORMED);
+		goto done;
+	}
 
 	imsg_free(&imsg);
 
@@ -396,9 +400,6 @@ apply_patch(struct got_worktree *worktree, struct got_repository *repo,
 
 	TAILQ_INIT(&paths);
 
-	if (p->old == NULL && p->new == NULL)
-		return got_error(GOT_ERR_PATCH_MALFORMED);
-
 	err = got_worktree_resolve_path(&path, worktree,
 	    p->new != NULL ? p->new : p->old);
 	if (err)