only use data from accept() if accept succeeds.

This commit is contained in:
Brian Wellington 2001-01-23 21:07:12 +00:00
parent b346ae570d
commit 1e3bc7eaeb

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: socket.c,v 1.182 2001/01/23 20:45:31 gson Exp $ */
/* $Id: socket.c,v 1.183 2001/01/23 21:07:12 bwelling Exp $ */
#include <config.h>
@ -1654,9 +1654,6 @@ internal_accept(isc_task_t *me, isc_event_t *ev) {
addrlen = sizeof dev->newsocket->address.type;
fd = accept(sock->fd, &dev->newsocket->address.type.sa,
(void *)&addrlen);
INSIST(dev->newsocket->address.type.sa.sa_family == sock->pf);
dev->newsocket->address.length = addrlen;
dev->newsocket->pf = sock->pf;
if (fd < 0) {
if (SOFT_ERROR(errno)) {
select_poke(sock->manager, sock->fd);
@ -1684,6 +1681,10 @@ internal_accept(isc_task_t *me, isc_event_t *ev) {
strerror(errno));
result = ISC_R_UNEXPECTED;
} else {
INSIST(dev->newsocket->address.type.sa.sa_family == sock->pf);
dev->newsocket->address.length = addrlen;
dev->newsocket->pf = sock->pf;
}
/*