mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 7.4.695
Problem: Out-of-bounds read, dectected by Coverity. Solution: Remember the value of cmap for the first matching encoding. Reset cmap to that value if first matching encoding is going to be used. (Eliseo Martínez)
This commit is contained in:
parent
83d1b19015
commit
7c94ce910f
@ -2513,13 +2513,18 @@ mch_print_init(psettings, jobname, forceit)
|
||||
props = enc_canon_props(p_encoding);
|
||||
if (!(props & ENC_8BIT) && ((*p_pmcs != NUL) || !(props & ENC_UNICODE)))
|
||||
{
|
||||
int cmap_first;
|
||||
|
||||
p_mbenc_first = NULL;
|
||||
for (cmap = 0; cmap < (int)NUM_ELEMENTS(prt_ps_mbfonts); cmap++)
|
||||
if (prt_match_encoding((char *)p_encoding, &prt_ps_mbfonts[cmap],
|
||||
&p_mbenc))
|
||||
{
|
||||
if (p_mbenc_first == NULL)
|
||||
{
|
||||
p_mbenc_first = p_mbenc;
|
||||
cmap_first = cmap;
|
||||
}
|
||||
if (prt_match_charset((char *)p_pmcs, &prt_ps_mbfonts[cmap],
|
||||
&p_mbchar))
|
||||
break;
|
||||
@ -2527,7 +2532,10 @@ mch_print_init(psettings, jobname, forceit)
|
||||
|
||||
/* Use first encoding matched if no charset matched */
|
||||
if (p_mbchar == NULL && p_mbenc_first != NULL)
|
||||
{
|
||||
p_mbenc = p_mbenc_first;
|
||||
cmap = cmap_first;
|
||||
}
|
||||
}
|
||||
|
||||
prt_out_mbyte = (p_mbenc != NULL);
|
||||
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
695,
|
||||
/**/
|
||||
694,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user