提交 56ddcc72 编写于 作者: R Rich Felker

fix for previous incorrect fix of cancellation in dns lookups

uninitialized file descriptor was being closed on return, causing
stdin to be closed in many cases.
上级 f96eb335
......@@ -89,12 +89,13 @@ int __dns_doqueries(unsigned char *dest, const char *name, int *rr, int rrcnt)
sl = sizeof sa.sin;
}
pthread_cleanup_push(cleanup, (void *)(intptr_t)fd);
pthread_setcancelstate(cs, 0);
/* Get local address and open/bind a socket */
sa.sin.sin_family = family;
fd = socket(family, SOCK_DGRAM, 0);
pthread_cleanup_push(cleanup, (void *)(intptr_t)fd);
pthread_setcancelstate(cs, 0);
if (bind(fd, (void *)&sa, sl) < 0) {
errcode = EAI_SYSTEM;
goto out;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册