Commit Diff


commit - 9eeddf622bfd545f4b973b812e155640ef1d8e2c
commit + 67f8363f3dd874d199bbaae6971884914e2ba2d9
blob - 21c1a7966d65512bb85fc73d1ec3d69722bd86a8
blob + e30ad0e702b5ba6ddb8b259f0ba7176fbf5e108b
--- lib/pack.c
+++ lib/pack.c
@@ -811,19 +811,20 @@ done:
 static const struct got_error *
 pack_stop_privsep_child(struct got_pack *pack)
 {
-	const struct got_error *err = NULL, *close_err = NULL;
+	const struct got_error *err = NULL;
+	const struct got_error *close_err = NULL, *child_err = NULL;
 
 	if (pack->privsep_child == NULL)
 		return NULL;
 
 	err = got_privsep_send_stop(pack->privsep_child->imsg_fd);
-	if (err)
-		return err;
 	if (close(pack->privsep_child->imsg_fd) == -1)
 		close_err = got_error_from_errno("close");
-	err = got_privsep_wait_for_child(pack->privsep_child->pid);
 	if (close_err && err == NULL)
 		err = close_err;
+	child_err = got_privsep_wait_for_child(pack->privsep_child->pid);
+	if (child_err && err == NULL)
+		err = child_err;
 	imsgbuf_clear(pack->privsep_child->ibuf);
 	free(pack->privsep_child->ibuf);
 	free(pack->privsep_child);