git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v1 1/4] transport-helper: use xread instead of read

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 28, 2018, 20:10 UTC
Message-ID
<xmqqk1jto1jb.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20181226230523.16572-2-randall.s.becker@rogers.com>
randall.s.becker@rogers.com writes:
Show 24 quoted lines
> From: "Randall S. Becker" <rsbecker@nexbridge.com>
>
> This fix was needed on HPE NonStop NSE and NSX where SSIZE_MAX is less than
> BUFFERSIZE resulting in EINVAL. The call to read in transport-helper.c
> was the only place outside of wrapper.c where it is used instead of xread.
>
> Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com>
> ---
>  transport-helper.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/transport-helper.c b/transport-helper.c
> index bf225c698f..a290695a12 100644
> --- a/transport-helper.c
> +++ b/transport-helper.c
> @@ -1225,7 +1225,7 @@ static int udt_do_read(struct unidirectional_transfer *t)
>  		return 0;	/* No space for more. */
>  
>  	transfer_debug("%s is readable", t->src_name);
> -	bytes = read(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);
> +	bytes = xread(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse);
>  	if (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN &&
>  		errno != EINTR) {
>  		error_errno(_("read(%s) failed"), t->src_name);

As Peff pointed out in the earlier round of the same patch, replacing read() with xread() here will affect what errno's can be possible after the function returns. The checks affected by this change must also be updated, either in the same patch, or a follow-up patch in the same series. Otherwise we _will_ forget to clean them up.

Previous: randall.s.becker@rogers.comNext: Randall S. Becker
Message 3 of 15 in “HPE NonStop Port Commits”
  1. 0/4 HPE NonStop Port Commitsrandall.s.becker@rogers.com, Dec 26, 2018
  2. 1/4 transport-helper: use xread instead of readrandall.s.becker@rogers.com, Dec 26, 2018
  3. Junio C HamanoDec 28, 2018
  4. Randall S. BeckerDec 28, 2018
  5. 2/4 config.mak.uname: support for modern HPE NonStop config.randall.s.becker@rogers.com, Dec 26, 2018
  6. Eric SunshineDec 27, 2018
  7. Randall S. BeckerDec 27, 2018
  8. Junio C HamanoDec 28, 2018
  9. Randall S. BeckerDec 28, 2018
  10. 3/4 git-compat-util.h: add FLOSS headers for HPE NonStoprandall.s.becker@rogers.com, Dec 26, 2018
  11. Derrick StoleeDec 27, 2018
  12. Randall S. BeckerDec 27, 2018
  13. 4/4 compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStoprandall.s.becker@rogers.com, Dec 26, 2018
  14. Derrick StoleeDec 27, 2018
  15. Randall S. BeckerDec 27, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.