Formerly ../posix/fnmatch.c.~18~
[kopensolaris-gnu/glibc.git] / posix / execvp.c
index 50488bb..01ae0d1 100644 (file)
@@ -32,10 +32,8 @@ Cambridge, MA 02139, USA.  */
 /* Execute FILE, searching in the `PATH' environment variable if it contains
    no slashes, with arguments ARGV and environment from `environ'.  */
 int
-DEFUN (execvp, (file, argv), CONST char *file AND char *CONST argv[])
+DEFUN(execvp, (file, argv), CONST char *file AND char *CONST argv[])
 {
-  char name[PATH_MAX];
-
   if (strchr (file, '/') == NULL)
     {
       char *path, *p;
@@ -45,6 +43,7 @@ DEFUN (execvp, (file, argv), CONST char *file AND char *CONST argv[])
       gid_t gid;
       int ngroups;
       gid_t groups[NGROUPS_MAX];
+      char *name;
 
       path = getenv ("PATH");
       if (path == NULL)
@@ -59,6 +58,7 @@ DEFUN (execvp, (file, argv), CONST char *file AND char *CONST argv[])
        }
 
       len = strlen (file) + 1;
+      name = __alloca (strlen (path) + len);
       uid = geteuid ();
       gid = getegid ();
       ngroups = getgroups (sizeof (groups) / sizeof (groups[0]), groups);