libbb: two new functions: wait_for_exitstatus(pid), xfchdir(fd)

Bartosz Golaszewski proposed xfchdir()

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/archival/libarchive/data_extract_to_command.c b/archival/libarchive/data_extract_to_command.c
index 6f5317a..5d87693 100644
--- a/archival/libarchive/data_extract_to_command.c
+++ b/archival/libarchive/data_extract_to_command.c
@@ -112,8 +112,7 @@
 		bb_copyfd_exact_size(archive_handle->src_fd, p[1], -file_header->size);
 		close(p[1]);
 
-		if (safe_waitpid(pid, &status, 0) == -1)
-			bb_perror_msg_and_die("waitpid");
+		status = wait_for_exitstatus(pid);
 		if (WIFEXITED(status) && WEXITSTATUS(status))
 			bb_error_msg_and_die("'%s' returned status %d",
 				archive_handle->tar__to_command, WEXITSTATUS(status));