]> git.pld-linux.org Git - packages/rdist.git/blob - rdist-environ.patch
- release 35 (by relup.sh)
[packages/rdist.git] / rdist-environ.patch
1 From: "David J. MacKenzie" <djm@web.us.uu.net>
2 Subject: [Notice] rdist environment limit exceeded
3 To: bugs@linux-mandrake.com
4 Date: Sat, 15 Apr 2000 15:49:01 -0400
5
6 Package: rdist
7 Version: 6.1.5-10
8
9 I hit an arbitrary limit on the environment size in rdist.
10 I used "rdist -P rsh" to get whichever rsh comes first in my PATH (the
11 krb5 rsh, which is in different directories on different machines I use).
12 My environment contains more than 40 variables, and PATH doesn't
13 happen to be among the first 40.  Thus, rdist dies with:
14
15 djm@dagger 35 $ rdist -P rsh -c /var/tmp/services catapult
16 catapult: updating host catapult
17 catapult: LOCAL ERROR: Unexpected input from server: "catapult: LOCAL ERROR: execlp rsh failed: No such file or directory.".
18 catapult: updating of catapult finished
19
20 because the PATH environment variable is not set any longer.
21
22 Fix (also sent to the rdist-bugs mailing list):
23
24 --- src/setargs.c.old   Mon Nov  9 23:15:56 1998
25 +++ src/setargs.c       Sat Apr 15 15:30:49 2000
26 @@ -58,10 +58,9 @@
27   * Set process argument functions
28   */
29  
30 -#define MAXUSERENVIRON                 40
31  char                         **Argv = NULL;
32  char                          *LastArgv = NULL;
33 -char                          *UserEnviron[MAXUSERENVIRON+1];
34 +char                         **UserEnviron;
35  
36  /*
37   * Settup things for using setproctitle()
38 @@ -74,9 +73,15 @@
39         register int            i;
40         extern char           **environ;
41  
42 +       /* Count the size of the environment.  */
43 +       for (i = 0; envp[i] != NULL; i++)
44 +               ;
45 +       i++;
46 +       UserEnviron = (char **) xmalloc(i * sizeof(char *));
47 +
48         /* Remember the User Environment */
49  
50 -       for (i = 0; i < MAXUSERENVIRON && envp[i] != NULL; i++)
51 +       for (i = 0; envp[i] != NULL; i++)
52                 UserEnviron[i] = strdup(envp[i]);
53         UserEnviron[i] = NULL;
54         environ = UserEnviron;
55
This page took 0.061348 seconds and 3 git commands to generate.