This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] Fix buffer size error handling in gethostname.


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=2cf6edf4eff7231fad4c548e27ad814faeafe894

commit 2cf6edf4eff7231fad4c548e27ad814faeafe894
Author: Renato Silva <br.renatosilva@gmail.com>
Date:   Tue Mar 31 21:18:46 2015 +0200

    Fix buffer size error handling in gethostname.
    
    	* net.cc (cygwin_gethostname): Fix buffer size error handling.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/ChangeLog | 4 ++++
 winsup/cygwin/net.cc    | 5 ++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 0e23b03..0d07bb1 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 f9b317c..eaf6eb8 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;
 	    }
 	}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]