Use MAX_HOST_NAME+1 (limits.h) instead of MAXHOSTNAMELEN (sys/param.h

or netdb.h).
This commit is contained in:
Todd C. Miller
2012-12-04 10:18:41 -05:00
parent 9a1889a61c
commit 3c9da162e4
5 changed files with 15 additions and 7 deletions

View File

@@ -93,8 +93,16 @@
# endif # endif
#endif #endif
#ifndef MAXHOSTNAMELEN #ifndef HOST_NAME_MAX
# define MAXHOSTNAMELEN 64 # ifdef MAXHOSTNAMELEN
# define HOST_NAME_MAX MAXHOSTNAMELEN
# else
# ifdef _POSIX_HOST_NAME_MAX
# define HOST_NAME_MAX _POSIX_HOST_NAME_MAX
# else
# define HOST_NAME_MAX 64
# endif
# endif
#endif #endif
/* /*

View File

@@ -788,8 +788,8 @@ netgr_matches(char *netgr, char *lhost, char *shost, char *user)
#ifdef HAVE_GETDOMAINNAME #ifdef HAVE_GETDOMAINNAME
/* get the domain name (if any) */ /* get the domain name (if any) */
if (!initialized) { if (!initialized) {
domain = (char *) emalloc(MAXHOSTNAMELEN + 1); domain = (char *) emalloc(HOST_NAME_MAX + 1);
if (getdomainname(domain, MAXHOSTNAMELEN + 1) == -1 || *domain == '\0') { if (getdomainname(domain, HOST_NAME_MAX + 1) == -1 || *domain == '\0') {
efree(domain); efree(domain);
domain = NULL; domain = NULL;
} }

View File

@@ -128,7 +128,7 @@ main(int argc, char *argv[])
struct privilege *priv; struct privilege *priv;
struct userspec *us; struct userspec *us;
char *p, *grfile, *pwfile; char *p, *grfile, *pwfile;
char hbuf[MAXHOSTNAMELEN + 1]; char hbuf[HOST_NAME_MAX + 1];
int match, host_match, runas_match, cmnd_match; int match, host_match, runas_match, cmnd_match;
int ch, dflag, exitcode = 0; int ch, dflag, exitcode = 0;
debug_decl(main, SUDO_DEBUG_MAIN) debug_decl(main, SUDO_DEBUG_MAIN)

View File

@@ -1040,7 +1040,7 @@ get_args(char *cmnd)
static void static void
get_hostname(void) get_hostname(void)
{ {
char *p, thost[MAXHOSTNAMELEN + 1]; char *p, thost[HOST_NAME_MAX + 1];
debug_decl(get_hostname, SUDO_DEBUG_UTIL) debug_decl(get_hostname, SUDO_DEBUG_UTIL)
if (gethostname(thost, sizeof(thost)) != -1) { if (gethostname(thost, sizeof(thost)) != -1) {

View File

@@ -414,7 +414,7 @@ get_user_groups(struct user_details *ud)
static char ** static char **
get_user_info(struct user_details *ud) get_user_info(struct user_details *ud)
{ {
char *cp, **user_info, cwd[PATH_MAX], host[MAXHOSTNAMELEN]; char *cp, **user_info, cwd[PATH_MAX], host[HOST_NAME_MAX + 1];
struct passwd *pw; struct passwd *pw;
int fd, i = 0; int fd, i = 0;
debug_decl(get_user_info, SUDO_DEBUG_UTIL) debug_decl(get_user_info, SUDO_DEBUG_UTIL)