diff options
author | peter <peter@FreeBSD.org> | 1995-12-02 09:43:43 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1995-12-02 09:43:43 +0000 |
commit | a43cf982d1cb2a7afd3cbdb9003ae1d69af473f2 (patch) | |
tree | 982e30debe82d0664d3e8a723a3c5be8ddbec5ea /lib/libedit/term.c | |
parent | 63b5fa82f085797e86d8b79bfe96bf4f9e0961dd (diff) | |
download | FreeBSD-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/term.c')
-rw-r--r-- | lib/libedit/term.c | 1 |
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*)); |