Commit Diff


commit - edb9a1809d3b83a6eb573160c0c60b19a65a383d
commit + 64c9e565c3e91b98b7047a34fd0b9094cfb09e74
blob - 6964e064bc5e24d6fc7175115a93d194855b9086
blob + 0c9a36311c21f50d3aeedf9dbc1502def9d14425
--- lib/patch.c
+++ lib/patch.c
@@ -171,6 +171,10 @@ recv_patch(struct imsgbuf *ibuf, int *done, struct got
 		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);
 
@@ -394,9 +398,6 @@ apply_patch(struct got_worktree *worktree, struct got_
 
 	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)