From: Todd C. Miller Date: Wed, 26 May 2010 20:33:35 +0000 (-0400) Subject: Re-enable PATH_MAX check for command X-Git-Tag: SUDO_1_8_0~582 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4695dd1b700d7f08d07c71757ab8f982e9a3b32b;p=sudo Re-enable PATH_MAX check for command --- diff --git a/plugins/sudoers/sudoers.c b/plugins/sudoers/sudoers.c index 2d7864f81..b867d81bb 100644 --- a/plugins/sudoers/sudoers.c +++ b/plugins/sudoers/sudoers.c @@ -691,12 +691,6 @@ init_vars(char * const envp[]) { char * const * ep; -#if 0 /* XXX */ - /* Sanity check command from user. */ - if (user_cmnd == NULL && strlen(NewArgv[0]) >= PATH_MAX) - errorx(1, "%s: File name too long", NewArgv[0]); -#endif - #ifdef HAVE_TZSET (void) tzset(); /* set the timezone if applicable */ #endif /* HAVE_TZSET */ @@ -813,13 +807,16 @@ set_cmnd(int sudo_mode) for (to = user_args, from = NewArgv + 1; *from; from++) { n = strlcpy(to, *from, size - (to - user_args)); if (n >= size - (to - user_args)) - errorx(1, "internal error, init_vars() overflow"); + errorx(1, "internal error, set_cmnd() overflow"); to += n; *to++ = ' '; } *--to = '\0'; } } + if (strlen(user_cmnd) >= PATH_MAX) + errorx(1, "%s: file name too long", user_cmnd); + if ((user_base = strrchr(user_cmnd, '/')) != NULL) user_base++; else