View | Details | Raw Unified | Return to bug 2579
Collapse All | Expand All

(-)src/lib/libc/net/rcmd.c (-2 / +2 lines)
Lines 104-110 Link Here
104
		sin.sin_len = sizeof(struct sockaddr_in);
104
		sin.sin_len = sizeof(struct sockaddr_in);
105
		sin.sin_family = hp->h_addrtype;
105
		sin.sin_family = hp->h_addrtype;
106
		sin.sin_port = rport;
106
		sin.sin_port = rport;
107
		bcopy(hp->h_addr_list[0], &sin.sin_addr, hp->h_length);
107
		bcopy(hp->h_addr_list[0], &sin.sin_addr, MIN(hp->h_length, sizeof sin.sin_addr));
108
		if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) >= 0)
108
		if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) >= 0)
109
			break;
109
			break;
110
		(void)close(s);
110
		(void)close(s);
Lines 125-131 Link Here
125
			errno = oerrno;
125
			errno = oerrno;
126
			perror(0);
126
			perror(0);
127
			hp->h_addr_list++;
127
			hp->h_addr_list++;
128
			bcopy(hp->h_addr_list[0], &sin.sin_addr, hp->h_length);
128
			bcopy(hp->h_addr_list[0], &sin.sin_addr, MIN(hp->h_length, sizeof sin.sin_addr));
129
			(void)fprintf(stderr, "Trying %s...\n",
129
			(void)fprintf(stderr, "Trying %s...\n",
130
			    inet_ntoa(sin.sin_addr));
130
			    inet_ntoa(sin.sin_addr));
131
			continue;
131
			continue;

Return to bug 2579