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;
|
ssize_t size;
|
||||||
|
|
||||||
size = archive_handle->read(archive_handle->src_fd, buf, count);
|
size = archive_handle->read(archive_handle->src_fd, buf, count);
|
||||||
if (size == -1) {
|
if (size < 0) {
|
||||||
bb_perror_msg_and_die("Read error");
|
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_header = header_skip;
|
||||||
archive_handle->action_data = data_skip;
|
archive_handle->action_data = data_skip;
|
||||||
archive_handle->filter = filter_accept_all;
|
archive_handle->filter = filter_accept_all;
|
||||||
archive_handle->read = read;
|
archive_handle->read = bb_full_read;
|
||||||
archive_handle->seek = seek_by_jump;
|
archive_handle->seek = seek_by_jump;
|
||||||
|
|
||||||
return(archive_handle);
|
return(archive_handle);
|
||||||
|
@ -526,7 +526,7 @@ static inline int writeTarFile(const char *tarName, const int verboseFlag,
|
|||||||
while (1) {
|
while (1) {
|
||||||
char buf;
|
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) {
|
if (n == 0 && vfork_exec_errno != 0) {
|
||||||
errno = vfork_exec_errno;
|
errno = vfork_exec_errno;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user