Be certain to not abort prematurely when reading stuff from pipes.
This commit is contained in:
parent
9f894f4062
commit
e3393513c5
@ -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");
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user