(xgethostname): Check for ENOMEM, which is
authorJim Meyering <jim@meyering.net>
Sun, 20 Feb 2005 16:35:32 +0000 (16:35 +0000)
committerJim Meyering <jim@meyering.net>
Sun, 20 Feb 2005 16:35:32 +0000 (16:35 +0000)
returned by OSX/Darwin if the specified buffer is not large
enough for the hostname.

lib/xgethostname.c

index 7b29176f2097ff58c9a5348f9a74723f200858ac..195a3750c3b8e4d89a726b27be48e178d866846b 100644 (file)
@@ -1,6 +1,6 @@
 /* xgethostname.c -- return current hostname with unlimited length
 
-   Copyright (C) 1992, 1996, 2000, 2001, 2003, 2004 Free Software
+   Copyright (C) 1992, 1996, 2000, 2001, 2003, 2004, 2005 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -69,7 +69,9 @@ xgethostname (void)
          if (! hostname[size_1 - 1])
            break;
        }
-      else if (errno != 0 && errno != ENAMETOOLONG && errno != EINVAL)
+      else if (errno != 0 && errno != ENAMETOOLONG && errno != EINVAL
+              /* OSX/Darwin does this when the buffer is not large enough */
+              && errno != ENOMEM)
        {
          int saved_errno = errno;
          free (hostname);