summaryrefslogtreecommitdiffstats
path: root/lib/libedit
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1995-12-02 09:43:43 +0000
committerpeter <peter@FreeBSD.org>1995-12-02 09:43:43 +0000
commita43cf982d1cb2a7afd3cbdb9003ae1d69af473f2 (patch)
tree982e30debe82d0664d3e8a723a3c5be8ddbec5ea /lib/libedit
parent63b5fa82f085797e86d8b79bfe96bf4f9e0961dd (diff)
downloadFreeBSD-src-a43cf982d1cb2a7afd3cbdb9003ae1d69af473f2.zip
FreeBSD-src-a43cf982d1cb2a7afd3cbdb9003ae1d69af473f2.tar.gz
Fix PR#858, /bin/sh corruption caused by non-zeroed malloc() in libedit
in particular circumstances. (malloc() does not zero memory, but usually does by coincidenct that sbrk() returns zeroed pages) Submitted-by: John Hood <cgull@smoke.marlboro.vt.us>
Diffstat (limited to 'lib/libedit')
-rw-r--r--lib/libedit/term.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/libedit/term.c b/lib/libedit/term.c
index 6ab407b..f98d02f 100644
--- a/lib/libedit/term.c
+++ b/lib/libedit/term.c
@@ -234,6 +234,7 @@ term_init(el)
el->el_term.t_buf = (char *) el_malloc(TC_BUFSIZE);
el->el_term.t_cap = (char *) el_malloc(TC_BUFSIZE);
el->el_term.t_fkey = (fkey_t *) el_malloc(4 * sizeof(fkey_t));
+ (void) memset(el->el_term.t_fkey, 0, 4 * sizeof(fkey_t));
el->el_term.t_loc = 0;
el->el_term.t_str = (char **) el_malloc(T_str * sizeof(char*));
(void) memset(el->el_term.t_str, 0, T_str * sizeof(char*));
OpenPOWER on IntegriCloud