On Mon, Feb 26, 2024 at 03:32:14PM +0000, Phillip Wood wrote: > Hi Randal > > [cc'ing Patrick for the reftable writer] > > > The question is which call is bad? The cruft stuff is > > relatively new and I don't know the code. > > > > > > reftable/writer.c: int n = w->write(w->write_arg, zeroed, > > > > w->pending_padding); > > > > reftable/writer.c: n = w->write(w->write_arg, data, len); > > Neither of these appear to check for short writes and reftable_fd_write() is > a thin wrapper around write(). Maybe reftable_fd_write() should be using > write_in_full()? It already does starting with 85a8c899ce (reftable: handle interrupted writes, 2023-12-11): ``` static ssize_t reftable_fd_write(void *arg, const void *data, size_t sz) { int *fdp = (int *)arg; return write_in_full(*fdp, data, sz); } ``` Patrick
Attachment:
signature.asc
Description: PGP signature