From: Jeff King Date: Wed, 27 Sep 2017 06:01:07 +0000 (-0400) Subject: avoid looking at errno for short read_in_full() returns X-Git-Tag: v2.15.0-rc0~19^2~3 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/90dca6710e6e5aad5d78d0cd006c3adadb65524d?hp=90dca6710e6e5aad5d78d0cd006c3adadb65524d avoid looking at errno for short read_in_full() returns When a caller tries to read a particular set of bytes via read_in_full(), there are three possible outcomes: 1. An error, in which case -1 is returned and errno is set. 2. A short read, in which fewer bytes are returned and errno is unspecified (we never saw a read error, so we may have some random value from whatever syscall failed last). 3. The full read completed successfully. Many callers handle cases 1 and 2 together by just checking the result against the requested size. If their combined error path looks at errno (e.g., by calling die_errno), they may report a nonsense value. Let's fix these sites by having them distinguish between the two error cases. That avoids the random errno confusion, and lets us give more detailed error messages. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano ---