diff options
author | rjones <rjones> | 2009-03-23 15:57:23 +0000 |
---|---|---|
committer | rjones <rjones> | 2009-03-23 15:57:23 +0000 |
commit | a1687222cb9f33b2055d4f06a4583315edec9acc (patch) | |
tree | 66735e5c87bb4b7e0a03a633e270e94cde98c33e /fakechroot-svn-no-dup-envs.patch | |
parent | b72ec392f8150426e01c38d9307baf9032111c15 (diff) | |
download | febootstrap-a1687222cb9f33b2055d4f06a4583315edec9acc.tar.gz febootstrap-a1687222cb9f33b2055d4f06a4583315edec9acc.tar.xz febootstrap-a1687222cb9f33b2055d4f06a4583315edec9acc.zip |
Updated the fakechroot patches.
Diffstat (limited to 'fakechroot-svn-no-dup-envs.patch')
-rw-r--r-- | fakechroot-svn-no-dup-envs.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/fakechroot-svn-no-dup-envs.patch b/fakechroot-svn-no-dup-envs.patch new file mode 100644 index 0000000..72b33a9 --- /dev/null +++ b/fakechroot-svn-no-dup-envs.patch @@ -0,0 +1,40 @@ +This patch must be applied to fakechroot SVN in order to +stop it from passing duplicated environment variables to +child processes. It is not necessary for fakechroot <= 2.8. + +Index: src/libfakechroot.c +=================================================================== +--- src/libfakechroot.c (revision 311) ++++ src/libfakechroot.c (working copy) +@@ -1479,7 +1479,7 @@ + char *env; + char tmp[FAKECHROOT_MAXPATH], newfilename[FAKECHROOT_MAXPATH], argv0[FAKECHROOT_MAXPATH]; + char *ptr; +- unsigned int i, j, n; ++ unsigned int i, j, n, len; + size_t sizeenvp; + char c; + char *fakechroot_path, *fakechroot_ptr, fakechroot_buf[FAKECHROOT_MAXPATH]; +@@ -1519,12 +1519,19 @@ + errno = ENOMEM; + return -1; + } +- for (ep = envp, i = 0; *ep != NULL; ++ep, ++i) { +- newenvp[i] = *ep; ++ for (ep = envp, i = 0; *ep != NULL; ++ep) { ++ for (j = 0; j < sizeof (envkey) / sizeof (char *); j++) { ++ len = strlen (envkey[j]); ++ if (strncmp (*ep, envkey[j], len) == 0 && (*ep)[len] == '=') ++ goto skip; ++ } ++ newenvp[i] = *ep; ++ i++; ++ skip: ; + } + + /* Add our variables to newenvp */ +- newenvp = realloc( newenvp, ((sizeenvp + 1) * sizeof(char *) + sizeof(envkey)) ); ++ newenvp = realloc( newenvp, i * sizeof(char *) + sizeof(envkey) ); + if (newenvp == NULL) { + errno = ENOMEM; + return -1; |