summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Silva <br.renatosilva@gmail.com>2015-03-31 21:18:46 +0200
committerCorinna Vinschen <corinna@vinschen.de>2015-03-31 21:18:46 +0200
commit2cf6edf4eff7231fad4c548e27ad814faeafe894 (patch)
treea730a4e775566df5dc660292608024bebc08981a
parent46d2802c2792cdc250f992c031dcb43cd8cd1252 (diff)
downloadcygnal-2cf6edf4eff7231fad4c548e27ad814faeafe894.tar.gz
cygnal-2cf6edf4eff7231fad4c548e27ad814faeafe894.tar.bz2
cygnal-2cf6edf4eff7231fad4c548e27ad814faeafe894.zip
Fix buffer size error handling in gethostname.
* net.cc (cygwin_gethostname): Fix buffer size error handling. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/net.cc5
2 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 0e23b0391..0d07bb1f7 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-31 Renato Silva <br.renatosilva@gmail.com>
+
+ * net.cc (cygwin_gethostname): Fix buffer size error handling.
+
2015-03-31 Corinna Vinschen <corinna@vinschen.de>
* uinfo.cc (pwdgrp::fetch_account_from_windows): Don't allow fully
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index f9b317c0d..eaf6eb870 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -1076,7 +1076,10 @@ cygwin_gethostname (char *name, size_t len)
if (!GetComputerNameExA (ComputerNameDnsFullyQualified, name,
&local_len))
{
- set_winsock_errno ();
+ if (GetLastError () == ERROR_MORE_DATA)
+ set_errno (ENAMETOOLONG);
+ else
+ set_winsock_errno ();
__leave;
}
}