Mercurial > hg > octave-lojdl > gnulib-hg
changeset 4561:d39aff91eae4
Include <stdlib.h>.
(xghostname): Don't exit for anything other than memory-related
failure; just return NULL.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Sat, 16 Aug 2003 06:58:50 +0000 |
parents | ff249a314eac |
children | 3a6baa62f6af |
files | lib/xgethostname.c |
diffstat | 1 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/xgethostname.c +++ b/lib/xgethostname.c @@ -21,6 +21,7 @@ # include <config.h> #endif +#include <stdlib.h> #include <sys/types.h> #include <errno.h> @@ -45,6 +46,9 @@ # define INITIAL_HOSTNAME_LENGTH 34 #endif +/* Return the current hostname in malloc'd storage. + If malloc fails, exit. + Upon any other failure, return NULL. */ char * xgethostname () { @@ -67,7 +71,12 @@ if (err >= 0 && hostname[k] == '\0') break; else if (err < 0 && errno != ENAMETOOLONG && errno != 0) - error (EXIT_FAILURE, errno, "gethostname"); + { + int saved_errno = errno; + free (hostname); + errno = saved_errno; + return NULL; + } size *= 2; hostname = xrealloc (hostname, size + 1); }