copy_bytes() recover function
The version of copy_bytes() in util/recover.c had fallen behind
the internal version in files.c which had received some
analyzer changes in 4bc5e26082 from
December 2022.
This synchronizes them, and addresses a couple of other static
analysis recommendations.
This commit is contained in:
+2
-1
@@ -4456,9 +4456,10 @@ boolean
|
|||||||
copy_bytes(int ifd, int ofd)
|
copy_bytes(int ifd, int ofd)
|
||||||
{
|
{
|
||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
int nfrom, nto = 0;
|
int nfrom, nto;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
nto = 0;
|
||||||
nfrom = read(ifd, buf, BUFSIZ);
|
nfrom = read(ifd, buf, BUFSIZ);
|
||||||
/* read can return -1 */
|
/* read can return -1 */
|
||||||
if (nfrom >= 0 && nfrom <= BUFSIZ)
|
if (nfrom >= 0 && nfrom <= BUFSIZ)
|
||||||
|
|||||||
+8
-4
@@ -201,9 +201,12 @@ copy_bytes(int ifd, int ofd)
|
|||||||
int nfrom, nto;
|
int nfrom, nto;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
nto = 0;
|
||||||
nfrom = read(ifd, buf, BUFSIZ);
|
nfrom = read(ifd, buf, BUFSIZ);
|
||||||
nto = write(ofd, buf, nfrom);
|
/* read can return -1 */
|
||||||
if (nto != nfrom) {
|
if (nfrom >= 0 && nfrom <= BUFSIZ)
|
||||||
|
nto = write(ofd, buf, nfrom);
|
||||||
|
if (nto != nfrom || nfrom < 0) {
|
||||||
Fprintf(stderr, "file copy failed!\n");
|
Fprintf(stderr, "file copy failed!\n");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
@@ -333,6 +336,7 @@ restore_savefile(char *basename)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert((size_t) pltmpsiz <= sizeof plbuf);
|
||||||
if (write(sfd, (genericptr_t) plbuf, pltmpsiz) != pltmpsiz) {
|
if (write(sfd, (genericptr_t) plbuf, pltmpsiz) != pltmpsiz) {
|
||||||
Fprintf(stderr, "Error writing %s; recovery failed (player name).\n",
|
Fprintf(stderr, "Error writing %s; recovery failed (player name).\n",
|
||||||
savename);
|
savename);
|
||||||
@@ -404,8 +408,8 @@ store_formatindicator(int fd)
|
|||||||
char indicate = 'h'; /* historical */
|
char indicate = 'h'; /* historical */
|
||||||
int cmc = 0;
|
int cmc = 0;
|
||||||
|
|
||||||
write(fd, (genericptr_t) &indicate, sizeof indicate);
|
(void) write(fd, (genericptr_t) &indicate, sizeof indicate);
|
||||||
write(fd, (genericptr_t) &cmc, sizeof cmc);
|
(void) write(fd, (genericptr_t) &cmc, sizeof cmc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user