import: sparse_write() returns negative errno

This commit is contained in:
Yu Watanabe 2018-09-30 02:58:50 +09:00 committed by Zbigniew Jędrzejewski-Szmek
parent f21f31b24b
commit e986910e87
2 changed files with 6 additions and 3 deletions

View File

@ -307,7 +307,7 @@ static int raw_import_write(const void *p, size_t sz, void *userdata) {
n = sparse_write(i->output_fd, p, sz, 64);
if (n < 0)
return -errno;
return (int) n;
if ((size_t) n < sz)
return -EIO;

View File

@ -233,10 +233,13 @@ static int pull_job_write_uncompressed(const void *p, size_t sz, void *userdata)
if (j->allow_sparse)
n = sparse_write(j->disk_fd, p, sz, 64);
else
else {
n = write(j->disk_fd, p, sz);
if (n < 0)
n = -errno;
}
if (n < 0)
return log_error_errno(errno, "Failed to write file: %m");
return log_error_errno((int) n, "Failed to write file: %m");
if ((size_t) n < sz) {
log_error("Short write");
return -EIO;