* net.cc (get_inet_addr ): Close AF_UNIX socket file after reading.

This commit is contained in:
Corinna Vinschen 2000-12-02 21:29:00 +00:00
parent 294f81d78d
commit 6b6a8cefad
2 changed files with 22 additions and 14 deletions

View File

@ -1,3 +1,7 @@
Sat Dec 2 22:26:00 2000 Corinna Vinschen <corinna@vinschen.de>
* net.cc (get_inet_addr ): Close AF_UNIX socket file after reading.
Wed Nov 29 18:25:53 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* cygheap.cc (chgheap_root::operator =): Check root dir properly.

View File

@ -387,22 +387,26 @@ static int get_inet_addr (const struct sockaddr *in, int inlen,
}
else if (in->sa_family == AF_UNIX)
{
sockaddr_in sin;
char buf[32];
memset (buf, 0, sizeof buf);
int fd = open (in->sa_data, O_RDONLY);
int fd = _open (in->sa_data, O_RDONLY);
if (fd == -1)
return 0;
if (read (fd, buf, sizeof buf) == -1)
return 0;
sin.sin_family = AF_INET;
sscanf (buf + strlen (SOCKET_COOKIE), "%hu", &sin.sin_port);
sin.sin_port = htons (sin.sin_port);
sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
*out = sin;
*outlen = sizeof sin;
return 1;
int ret = 0;
char buf[32];
memset (buf, 0, sizeof buf);
if (read (fd, buf, sizeof buf) != -1)
{
sockaddr_in sin;
sin.sin_family = AF_INET;
sscanf (buf + strlen (SOCKET_COOKIE), "%hu", &sin.sin_port);
sin.sin_port = htons (sin.sin_port);
sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
*out = sin;
*outlen = sizeof sin;
ret = 1;
}
_close (fd);
return ret;
}
else
{