svn commit: r343460 - stable/11/lib/libedit
Jilles Tjoelker
jilles at FreeBSD.org
Fri Jan 25 22:52:50 UTC 2019
Author: jilles
Date: Fri Jan 25 22:52:49 2019
New Revision: 343460
URL: https://svnweb.freebsd.org/changeset/base/343460
Log:
MFC r343105: libedit: Avoid out of bounds read in 'bind' command
This is CVS revision 1.31 from NetBSD lib/libedit/chartype.c:
Make sure that argv is NULL terminated since functions like tty_stty rely
on it to be so (Gerry Swinslow)
This broke when the wide-character support was enabled in libedit. The
conversion from multibyte to wide-character did not supply the apparently
expected terminating NULL in the new argv array.
PR: 233343
Modified:
stable/11/lib/libedit/chartype.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/lib/libedit/chartype.c
==============================================================================
--- stable/11/lib/libedit/chartype.c Fri Jan 25 22:22:29 2019 (r343459)
+++ stable/11/lib/libedit/chartype.c Fri Jan 25 22:52:49 2019 (r343460)
@@ -157,7 +157,7 @@ ct_decode_argv(int argc, const char *argv[], ct_buffer
if (ct_conv_wbuff_resize(conv, bufspace + CT_BUFSIZ) == -1)
return NULL;
- wargv = el_malloc((size_t)argc * sizeof(*wargv));
+ wargv = el_malloc((size_t)(argc + 1) * sizeof(*wargv));
for (i = 0, p = conv->wbuff; i < argc; ++i) {
if (!argv[i]) { /* don't pass null pointers to mbstowcs */
@@ -175,6 +175,7 @@ ct_decode_argv(int argc, const char *argv[], ct_buffer
bufspace -= (size_t)bytes;
p += bytes;
}
+ wargv[i] = NULL;
return wargv;
}
More information about the svn-src-stable-11
mailing list