Be certain to not abort prematurely when reading stuff from pipes.

This commit is contained in:
Eric Andersen 2003-07-05 23:10:27 +00:00
parent 9f894f4062
commit e3393513c5
3 changed files with 3 additions and 3 deletions

View File

@ -25,7 +25,7 @@ extern ssize_t archive_xread(const archive_handle_t *archive_handle, unsigned ch
ssize_t size;
size = archive_handle->read(archive_handle->src_fd, buf, count);
if (size == -1) {
if (size < 0) {
bb_perror_msg_and_die("Read error");
}

View File

@ -30,7 +30,7 @@ archive_handle_t *init_handle(void)
archive_handle->action_header = header_skip;
archive_handle->action_data = data_skip;
archive_handle->filter = filter_accept_all;
archive_handle->read = read;
archive_handle->read = bb_full_read;
archive_handle->seek = seek_by_jump;
return(archive_handle);

View File

@ -526,7 +526,7 @@ static inline int writeTarFile(const char *tarName, const int verboseFlag,
while (1) {
char buf;
int n = read(gzipStatusPipe[0], &buf, 1);
int n = bb_full_read(gzipStatusPipe[0], &buf, 1);
if (n == 0 && vfork_exec_errno != 0) {
errno = vfork_exec_errno;