riched20: Fix the struct size check in the para fmt retrieval function.
Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
1abbb78a09
commit
9908c5d3c4
|
@ -928,7 +928,8 @@ void ME_GetSelectionParaFormat(ME_TextEditor *editor, PARAFORMAT2 *pFmt)
|
||||||
ME_DisplayItem *para, *para_end;
|
ME_DisplayItem *para, *para_end;
|
||||||
PARAFORMAT2 *curFmt;
|
PARAFORMAT2 *curFmt;
|
||||||
|
|
||||||
if (pFmt->cbSize < sizeof(PARAFORMAT)) {
|
if (pFmt->cbSize < sizeof(PARAFORMAT))
|
||||||
|
{
|
||||||
pFmt->dwMask = 0;
|
pFmt->dwMask = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -951,13 +952,14 @@ void ME_GetSelectionParaFormat(ME_TextEditor *editor, PARAFORMAT2 *pFmt)
|
||||||
CHECK_FIELD(PFM_RIGHTINDENT, dxRightIndent);
|
CHECK_FIELD(PFM_RIGHTINDENT, dxRightIndent);
|
||||||
CHECK_FIELD(PFM_OFFSET, dxOffset);
|
CHECK_FIELD(PFM_OFFSET, dxOffset);
|
||||||
CHECK_FIELD(PFM_ALIGNMENT, wAlignment);
|
CHECK_FIELD(PFM_ALIGNMENT, wAlignment);
|
||||||
if (pFmt->dwMask & PFM_TABSTOPS) {
|
if (pFmt->dwMask & PFM_TABSTOPS)
|
||||||
|
{
|
||||||
if (pFmt->cTabCount != para->member.para.fmt.cTabCount ||
|
if (pFmt->cTabCount != para->member.para.fmt.cTabCount ||
|
||||||
memcmp(pFmt->rgxTabs, curFmt->rgxTabs, curFmt->cTabCount*sizeof(int)))
|
memcmp(pFmt->rgxTabs, curFmt->rgxTabs, curFmt->cTabCount*sizeof(int)))
|
||||||
pFmt->dwMask &= ~PFM_TABSTOPS;
|
pFmt->dwMask &= ~PFM_TABSTOPS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pFmt->dwMask >= sizeof(PARAFORMAT2))
|
if (pFmt->cbSize >= sizeof(PARAFORMAT2))
|
||||||
{
|
{
|
||||||
pFmt->dwMask &= ~((pFmt->wEffects ^ curFmt->wEffects) << 16);
|
pFmt->dwMask &= ~((pFmt->wEffects ^ curFmt->wEffects) << 16);
|
||||||
CHECK_FIELD(PFM_SPACEBEFORE, dySpaceBefore);
|
CHECK_FIELD(PFM_SPACEBEFORE, dySpaceBefore);
|
||||||
|
|
Loading…
Reference in New Issue