mirror of
https://github.com/sheumann/hush.git
synced 2024-10-27 23:26:30 +00:00
tr: properly detect read errors (Fernando Silveira <fsilveira@gmail.com>)
readprofile: use xwrite function old new delta tr_main 679 677 -2 readprofile_main 1964 1944 -20
This commit is contained in:
parent
130f559f4d
commit
a89d50fb9a
@ -173,7 +173,8 @@ int tr_main(int argc, char **argv)
|
|||||||
int idx = 1;
|
int idx = 1;
|
||||||
int i;
|
int i;
|
||||||
smalluint flags = 0;
|
smalluint flags = 0;
|
||||||
size_t read_chars = 0, in_index = 0, out_index = 0, c, coded, last = -1;
|
ssize_t read_chars = 0;
|
||||||
|
size_t in_index = 0, out_index = 0, c, coded, last = -1;
|
||||||
RESERVE_CONFIG_UBUFFER(output, BUFSIZ);
|
RESERVE_CONFIG_UBUFFER(output, BUFSIZ);
|
||||||
RESERVE_CONFIG_BUFFER(vector, ASCII+1);
|
RESERVE_CONFIG_BUFFER(vector, ASCII+1);
|
||||||
RESERVE_CONFIG_BUFFER(invec, ASCII+1);
|
RESERVE_CONFIG_BUFFER(invec, ASCII+1);
|
||||||
@ -223,8 +224,9 @@ int tr_main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
read_chars = read(STDIN_FILENO, tr_buf, BUFSIZ);
|
read_chars = read(STDIN_FILENO, tr_buf, BUFSIZ);
|
||||||
if (read_chars <= 0) {
|
if (read_chars <= 0) {
|
||||||
if (write(STDOUT_FILENO, (char *)output, out_index) != out_index)
|
xwrite(STDOUT_FILENO, (char *)output, out_index);
|
||||||
bb_perror_msg(bb_msg_write_error);
|
if (read_chars < 0)
|
||||||
|
bb_perror_msg_and_die(bb_msg_read_error);
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
in_index = 0;
|
in_index = 0;
|
||||||
|
@ -88,10 +88,7 @@ int readprofile_main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
fd = xopen(defaultpro, O_WRONLY);
|
fd = xopen(defaultpro, O_WRONLY);
|
||||||
|
xwrite(fd, &multiplier, to_write);
|
||||||
if (full_write(fd, &multiplier, to_write) != to_write)
|
|
||||||
bb_perror_msg_and_die("error writing %s", defaultpro);
|
|
||||||
|
|
||||||
close(fd);
|
close(fd);
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user