From 2d77bd0d58490cb5df833b9ccc3d479267f879f6 Mon Sep 17 00:00:00 2001 From: Sven Wischnowsky Date: Tue, 14 Nov 2000 11:51:25 +0000 Subject: don't be sure that read-ahead doesn't contains nuls (13163) --- Src/Modules/zpty.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'Src/Modules/zpty.c') diff --git a/Src/Modules/zpty.c b/Src/Modules/zpty.c index dcca286c0..297833a79 100644 --- a/Src/Modules/zpty.c +++ b/Src/Modules/zpty.c @@ -49,6 +49,7 @@ struct ptycmd { int fin; int read; char *old; + int olen; }; static Ptycmd ptycmds; @@ -375,6 +376,7 @@ newptycmd(char *nam, char *pname, char **args, int echo, int nblock) p->fin = 0; p->read = -1; p->old = NULL; + p->olen = 0; p->next = ptycmds; ptycmds = p; @@ -462,11 +464,12 @@ ptyread(char *nam, Ptycmd cmd, char **args) fflush(stdout); if (cmd->old) { - used = strlen(cmd->old); + used = cmd->olen; buf = (char *) zhalloc((blen = 256 + used) + 1); - strcpy(buf, cmd->old); - zsfree(cmd->old); + memcpy(buf, cmd->old, cmd->olen); + zfree(cmd->old, cmd->olen); cmd->old = NULL; + cmd->olen = 0; } else { used = 0; buf = (char *) zhalloc((blen = 256) + 1); @@ -516,8 +519,8 @@ ptyread(char *nam, Ptycmd cmd, char **args) #endif #endif ) { - cmd->old = ztrdup(buf); - used = 0; + cmd->old = (char *) zalloc(cmd->olen = used); + memcpy(cmd->old, buf, cmd->olen); return 1; } -- cgit 1.4.1