diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/Zle/zle_utils.c | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 2cbeedf88..728de3ca9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-01-26 Peter Stephenson <pws@csr.com> + + * 20750: Src/zle_utils.c: 20742 could cause hang when line + resized to empty. + 2005-01-25 Peter Stephenson <pws@csr.com> * 20742: Src/system.h, Src/Zle/zle.h, Src/Zle/zle_main.c, diff --git a/Src/Zle/zle_utils.c b/Src/Zle/zle_utils.c index a3f3d83a4..0e8099bd2 100644 --- a/Src/Zle/zle_utils.c +++ b/Src/Zle/zle_utils.c @@ -67,9 +67,16 @@ void sizeline(int sz) { while (sz > linesz) - zleline = + { + if (linesz < 256) + linesz = 256; + else + linesz *= 4; + + zleline = (ZLE_STRING_T)realloc(zleline, - ((linesz *= 4) + 2) * ZLE_CHAR_SIZE); + (linesz + 2) * ZLE_CHAR_SIZE); + } } /* |