trying to bind to the localhost interface with a sockaddr_in which has non-zero
sin_zero fields." Zero sockaddr_in (and sockaddr_in6) before any use.
git-svn-id: svn://svn.tartarus.org/sgt/putty@3793
cda61777-01e9-0310-a592-
d414129be87e
else
localport = 0; /* just use port 0 (ie kernel picks) */
else
localport = 0; /* just use port 0 (ie kernel picks) */
+ /* BSD IP stacks need sockaddr_in zeroed before filling in */
+ memset(&a,'\0',sizeof(struct sockaddr_in));
+#ifdef IPV6
+ memset(&a6,'\0',sizeof(struct sockaddr_in6));
+#endif
/* Loop round trying to bind */
while (1) {
int retcode;
/* Loop round trying to bind */
while (1) {
int retcode;
setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (const char *)&on, sizeof(on));
setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (const char *)&on, sizeof(on));
+ /* BSD IP stacks need sockaddr_in zeroed before filling in */
+ memset(&a,'\0',sizeof(struct sockaddr_in));
+#if 0
+ memset(&a6,'\0',sizeof(struct sockaddr_in6));
+#endif
hints.ai_flags = AI_NUMERICHOST;
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = 0;
hints.ai_flags = AI_NUMERICHOST;
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = 0;