diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2007-06-03 17:44:20 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2007-06-03 17:44:20 +0000 |
commit | 023f6ce4e19331c3658c58955e178ca92783c5a1 (patch) | |
tree | 8e71f5c275b8b6714525f40edc0ebe4f9713ffa4 /Src/exec.c | |
parent | 4a1549e058ac25d7ea9d2821292eeb5a3eefdd55 (diff) | |
download | zsh-023f6ce4e19331c3658c58955e178ca92783c5a1.tar.gz zsh-023f6ce4e19331c3658c58955e178ca92783c5a1.tar.xz zsh-023f6ce4e19331c3658c58955e178ca92783c5a1.zip |
23511: error if here document too large
Diffstat (limited to 'Src/exec.c')
-rw-r--r-- | Src/exec.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Src/exec.c b/Src/exec.c index ccba66bf8..7e4b55d43 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -3111,7 +3111,13 @@ gethere(char *str, int typ) ; for (;;) { if (bptr == buf + bsiz) { - buf = realloc(buf, 2 * bsiz); + char *newbuf = realloc(buf, 2 * bsiz); + if (!newbuf) { + /* out of memory */ + zfree(buf, bsiz); + return NULL; + } + buf = newbuf; t = buf + bsiz - (bptr - t); bptr = buf + bsiz; bsiz *= 2; |