Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin-developers AT sourceware DOT cygnus DOT com To: cygwin-developers AT sourceware DOT cygnus DOT com Subject: cygwin_bind bug. Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII From: Kazuhiro Fujieda Date: 25 Nov 1999 09:16:17 +0900 Message-ID: Lines: 41 X-Mailer: Gnus v5.3/Emacs 19.34 cygwin_bind() with AF_UNIX can return 0 even though it fails. ChangeLog: Thu Nov 25 08:55:42 1999 Kazuhiro Fujieda * net.cc (cygwin_bind): Return -1 properly if it fails on AF_UNIX. --- net.cc- Thu Nov 25 08:31:53 1999 +++ net.cc Thu Nov 25 08:55:42 1999 @@ -757,6 +757,7 @@ cygwin_bind (int fd, struct sockaddr *my struct sockaddr_in sin; int len = sizeof sin; int fd; + int inet_res; if (strlen (un_addr->sun_path) >= UNIX_PATH_LEN) { @@ -766,15 +767,15 @@ cygwin_bind (int fd, struct sockaddr *my sin.sin_family = AF_INET; sin.sin_port = 0; sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK); - res = bind (sock->get_socket (), (sockaddr *) &sin, len); - if (res) + inet_res = bind (sock->get_socket (), (sockaddr *) &sin, len); + if (inet_res) { set_winsock_errno (); syscall_printf ("AF_UNIX: bind failed %d", get_errno ()); goto out; } - res = getsockname (sock->get_socket (), (sockaddr *) &sin, &len); - if (res) + inet_res = getsockname (sock->get_socket (), (sockaddr *) &sin, &len); + if (inet_res) { set_winsock_errno (); syscall_printf ("AF_UNIX: getsockname failed %d", get_errno ()); ____ | AIST Kazuhiro Fujieda | HOKURIKU School of Information Science o_/ 1990 Japan Advanced Institute of Science and Technology