Merge branch 'jk/write-in-full-fix'
Many codepaths did not diagnose write failures correctly when disks go full, due to their misuse of write_in_full() helper function, which have been corrected. * jk/write-in-full-fix: read_pack_header: handle signed/unsigned comparison in read result config: flip return value of store_write_*() notes-merge: use ssize_t for write_in_full() return value pkt-line: check write_in_full() errors against "< 0" convert less-trivial versions of "write_in_full() != len" avoid "write_in_full(fd, buf, len) != len" pattern get-tar-commit-id: check write_in_full() return against 0 config: avoid "write_in_full(fd, buf, len) < len" pattern
This commit is contained in:
@ -358,7 +358,7 @@ static void inflate_request(const char *prog_name, int out, int buffer_input)
|
||||
die("zlib error inflating request, result %d", ret);
|
||||
|
||||
n = stream.total_out - cnt;
|
||||
if (write_in_full(out, out_buf, n) != n)
|
||||
if (write_in_full(out, out_buf, n) < 0)
|
||||
die("%s aborted reading request", prog_name);
|
||||
cnt += n;
|
||||
|
||||
@ -379,7 +379,7 @@ static void copy_request(const char *prog_name, int out)
|
||||
ssize_t n = read_request(0, &buf);
|
||||
if (n < 0)
|
||||
die_errno("error reading request body");
|
||||
if (write_in_full(out, buf, n) != n)
|
||||
if (write_in_full(out, buf, n) < 0)
|
||||
die("%s aborted reading request", prog_name);
|
||||
close(out);
|
||||
free(buf);
|
||||
|
Reference in New Issue
Block a user