Re: [PATCH] config: avoid "write_in_full(fd, buf, len) != len" pattern
- From
Jeff King <peff@peff.net>
- Date
- Nov 18, 2017, 17:52 UTC
- Message-ID
- <20171118175246.puaepnyw3u4a33dy@sigill.intra.peff.net>
- In-Reply-To
- <f3038984-1cd8-e11f-61fd-10bf0cc33e2d@web.de>
On Sat, Nov 18, 2017 at 11:20:04AM +0100, René Scharfe wrote:
Show 6 quoted lines
> Am 17.11.2017 um 23:06 schrieb Jeff King: > > There's one more case in write_section() that uses "==". That's not > > actually wrong, but I wonder if we'd want to make it "< 0" for > > consistency. > > Actually it *is* wrong.
Thanks for digging, I didn't look beyond that single line.
Show 11 quoted lines
> -- >8 -- > Subject: [PATCH] config: flip return value of write_section() > > d9bd4cbb9cc (config: flip return value of store_write_*()) made > write_section() follow the convention of write(2) to return -1 on error > and the number of written bytes on success. 3b48045c6c7 (Merge branch > 'sd/branch-copy') changed it back to returning 0 on error and 1 on > success, but left its callers still checking for negative values. > > Let write_section() follow the convention of write(2) again to meet the > expectations of its callers.
Yikes. It looks like this slipped by on the tests because we always check "< 0" in the callers, not non-zero. So success would not look like failure, but failure would look like success. And write failure does not happen regularly in the test suite.
So this looks correct, and well-explained.
> Reported-by: Jeff King <peff@peff.net> > Signed-off-by: Rene Scharfe <l.s.r@web.de>
I'm not sure I deserve a reported-by if I say "it looks fine" but am totally wrong. ;)
-Peff