summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2013-02-04 12:21:56 +0000
committerCorinna Vinschen <corinna@vinschen.de>2013-02-04 12:21:56 +0000
commitcf4acdbc1fca41ca382efbf7e4399d82c099210a (patch)
treee5c9eb01ec81b7f801d341491f3000cc395cfbce
parent188fc1cf6ee9905e765c62f5190caf9b95e4f77b (diff)
downloadcygnal-cf4acdbc1fca41ca382efbf7e4399d82c099210a.tar.gz
cygnal-cf4acdbc1fca41ca382efbf7e4399d82c099210a.tar.bz2
cygnal-cf4acdbc1fca41ca382efbf7e4399d82c099210a.zip
* fhandler_socket.cc (fhandler_socket::bind): Fix error code for
empty filename.
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/fhandler_socket.cc2
2 files changed, 6 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 2eb9c45a9..a815a1206 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
2013-02-04 Corinna Vinschen <corinna@vinschen.de>
+ * fhandler_socket.cc (fhandler_socket::bind): Fix error code for
+ empty filename.
+
+2013-02-04 Corinna Vinschen <corinna@vinschen.de>
+
* fhandler_socket.cc (fhandler_socket::bind): Fix length check of
AF_LOCAL filename so it never accesses memory beyond namelen. Also
make sure filename is NUL-terminated.
diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
index 6f13e51ce..8b05f75da 100644
--- a/winsup/cygwin/fhandler_socket.cc
+++ b/winsup/cygwin/fhandler_socket.cc
@@ -906,7 +906,7 @@ fhandler_socket::bind (const struct sockaddr *name, int namelen)
if (len <= 1 || len > UNIX_PATH_LEN
|| !memchr (un_addr->sun_path, '\0', len))
{
- set_errno (len < 1 ? EINVAL : ENAMETOOLONG);
+ set_errno (len <= 1 ? (len == 1 ? ENOENT : EINVAL) : ENAMETOOLONG);
goto out;
}
sin.sin_family = AF_INET;