diff options
Diffstat (limited to 'pkt-line.c')
| -rw-r--r-- | pkt-line.c | 15 | 
1 files changed, 5 insertions, 10 deletions
| diff --git a/pkt-line.c b/pkt-line.c index 355546a1ad..f5d00863a6 100644 --- a/pkt-line.c +++ b/pkt-line.c @@ -65,16 +65,11 @@ void packet_write(int fd, const char *fmt, ...)  static void safe_read(int fd, void *buffer, unsigned size)  { -	size_t n = 0; - -	while (n < size) { -		ssize_t ret = xread(fd, (char *) buffer + n, size - n); -		if (ret < 0) -			die("read error (%s)", strerror(errno)); -		if (!ret) -			die("The remote end hung up unexpectedly"); -		n += ret; -	} +	ssize_t ret = read_in_full(fd, buffer, size); +	if (ret < 0) +		die("read error (%s)", strerror(errno)); +	else if (ret < size) +		die("The remote end hung up unexpectedly");  }  int packet_read_line(int fd, char *buffer, unsigned size) | 
