diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2002-06-14 14:08:07 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2002-06-14 14:08:07 +0000 |
commit | 470e8c460d8ef8cd60d2d528498e8b07bbcda6dc (patch) | |
tree | 5e0a0cd9c044e42fff3e994105554bfacc70366f | |
parent | ced1e577b77b5bf0abab7fdcce453fdf0fb249ce (diff) | |
download | cygnal-470e8c460d8ef8cd60d2d528498e8b07bbcda6dc.tar.gz cygnal-470e8c460d8ef8cd60d2d528498e8b07bbcda6dc.tar.bz2 cygnal-470e8c460d8ef8cd60d2d528498e8b07bbcda6dc.zip |
* environ.cc (build_env): If realloc moves envblock, move s with it.
-rw-r--r-- | winsup/cygwin/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/cygwin/environ.cc | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index fcf4325e1..8f54b1a73 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2002-06-14 Corinna Vinschen <corinna@vinschen.de> + + * environ.cc (build_env): If realloc moves envblock, move s with it. + 2002-06-13 Nicholas S. Wourms <nwourms@netscape.net> * winver.rc: Add more words to copyright. diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc index 4d535e436..962dc42f9 100644 --- a/winsup/cygwin/environ.cc +++ b/winsup/cygwin/environ.cc @@ -910,7 +910,16 @@ build_env (const char * const *envp, char *&envblock, int &envc, /* See if we need to increase the size of the block. */ if (new_tl > tl) - envblock = (char *) realloc (envblock, 2 + (tl += len + 100)); + { + char *new_envblock = + (char *) realloc (envblock, 2 + (tl += len + 100)); + /* If realloc moves the block, move `s' with it. */ + if (new_envblock != envblock) + { + s += new_envblock - envblock; + envblock = new_envblock; + } + } memcpy (s, p, len + 1); |