formula/source/ui/dlg/parawin.cxx | 8 +-- lotuswordpro/source/filter/lwpfrib.cxx | 12 ++++- sw/source/core/fields/chpfld.cxx | 11 ++++- vcl/inc/salwtype.hxx | 9 ++++ vcl/unx/generic/app/i18n_cb.cxx | 67 ++++++++++++++++----------------- vcl/unx/generic/window/salframe.cxx | 2 6 files changed, 66 insertions(+), 43 deletions(-)
New commits: commit 20528cb2702d7044734ec1f4a9af40804bce1c0e Author: Caolán McNamara <caol...@redhat.com> Date: Mon Oct 14 21:08:40 2013 +0100 CID#736176 aArgInput is only 4 items, what's with the loop over 5 elements Change-Id: I16983832e5d12ae55a3db448bcef2550b000d496 diff --git a/formula/source/ui/dlg/parawin.cxx b/formula/source/ui/dlg/parawin.cxx index 1b0a6db..c209c37 100644 --- a/formula/source/ui/dlg/parawin.cxx +++ b/formula/source/ui/dlg/parawin.cxx @@ -513,7 +513,7 @@ IMPL_LINK( ParaWin, GetFxHdl, ArgInput*, pPtr ) { sal_uInt16 nOffset = GetSliderPos(); nEdFocus=NOT_FOUND; - for ( sal_uInt16 nPos=0; nPos<5;nPos++) + for (sal_uInt16 nPos=0; nPos < SAL_N_ELEMENTS(aArgInput); ++nPos) { if(pPtr == &aArgInput[nPos]) { @@ -535,7 +535,7 @@ IMPL_LINK( ParaWin, GetFxFocusHdl, ArgInput*, pPtr ) { sal_uInt16 nOffset = GetSliderPos(); nEdFocus=NOT_FOUND; - for ( sal_uInt16 nPos=0; nPos<5;nPos++) + for (sal_uInt16 nPos=0; nPos < SAL_N_ELEMENTS(aArgInput); ++nPos) { if(pPtr == &aArgInput[nPos]) { @@ -559,7 +559,7 @@ IMPL_LINK( ParaWin, GetEdFocusHdl, ArgInput*, pPtr ) { sal_uInt16 nOffset = GetSliderPos(); nEdFocus=NOT_FOUND; - for ( sal_uInt16 nPos=0; nPos<5;nPos++) + for (sal_uInt16 nPos=0; nPos < SAL_N_ELEMENTS(aArgInput); ++nPos) { if(pPtr == &aArgInput[nPos]) { @@ -591,7 +591,7 @@ IMPL_LINK( ParaWin, ModifyHdl, ArgInput*, pPtr ) { sal_uInt16 nOffset = GetSliderPos(); nEdFocus=NOT_FOUND; - for ( sal_uInt16 nPos=0; nPos<5;nPos++) + for (sal_uInt16 nPos=0; nPos < SAL_N_ELEMENTS(aArgInput); ++nPos) { if(pPtr == &aArgInput[nPos]) { commit eb0d268cdb71513b8ca36ce6582a06e34190c54d Author: Caolán McNamara <caol...@redhat.com> Date: Mon Oct 14 20:59:34 2013 +0100 CID#736192 out of bounds Change-Id: I7ab1baa96e004122bd03d7b057effaf6b1ca7fe2 diff --git a/sw/source/core/fields/chpfld.cxx b/sw/source/core/fields/chpfld.cxx index ddda6c4..7c1eb52 100644 --- a/sw/source/core/fields/chpfld.cxx +++ b/sw/source/core/fields/chpfld.cxx @@ -135,7 +135,16 @@ void SwChapterField::ChangeExpansion(const SwTxtNode &rTxtNd, sal_Bool bSrchNum) if (rTxtNd.IsCountedInList() && pRule) { sNumber = rTxtNd.GetNumString(false); - const SwNumFmt& rNFmt = pRule->Get(static_cast<unsigned short>(rTxtNd.GetActualListLevel())); + + int nListLevel = rTxtNd.GetActualListLevel(); + + if (nListLevel < 0) + nListLevel = 0; + + if (nListLevel >= MAXLEVEL) + nListLevel = MAXLEVEL - 1; + + const SwNumFmt& rNFmt = pRule->Get(static_cast<unsigned short>(nListLevel)); sPost = rNFmt.GetSuffix(); sPre = rNFmt.GetPrefix(); } commit b8d18c1b27e97e14a83338c6b18239637b744834 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Oct 14 20:51:54 2013 +0100 CID#738972 use after free Change-Id: I3c1329a55b53365945406c515ff4e8e72792dcb6 diff --git a/lotuswordpro/source/filter/lwpfrib.cxx b/lotuswordpro/source/filter/lwpfrib.cxx index 9ef736d..ca91ef9 100644 --- a/lotuswordpro/source/filter/lwpfrib.cxx +++ b/lotuswordpro/source/filter/lwpfrib.cxx @@ -255,8 +255,11 @@ void LwpFrib::RegisterStyle(LwpFoundry* pFoundry) pStyle->SetStyleName(A2OUSTR("")); pFont = pFoundry->GetFontManger()->CreateOverrideFont(pCharStyle->GetFinalFontID(),m_pModifiers->FontID); pStyle->SetFont(pFont); - m_StyleName = pXFStyleManager->AddStyle(pStyle)->GetStyleName(); - } + IXFStyle *pNewStyle = pXFStyleManager->AddStyle(pStyle); + m_StyleName = pNewStyle->GetStyleName(); + if (pNewStyle != pStyle) + pStyle = NULL; + } else m_StyleName = pNamedStyle->GetStyleName(); } @@ -267,7 +270,10 @@ void LwpFrib::RegisterStyle(LwpFoundry* pFoundry) pStyle = new XFTextStyle(); pFont = pFoundry->GetFontManger()->CreateFont(m_pModifiers->FontID); pStyle->SetFont(pFont); - m_StyleName = pXFStyleManager->AddStyle(pStyle)->GetStyleName(); + IXFStyle *pNewStyle = pXFStyleManager->AddStyle(pStyle); + m_StyleName = pNewStyle->GetStyleName(); + if (pNewStyle != pStyle) + pStyle = NULL; } } commit 5d4c63c815c38106d1d80e817e96c5cb0fbaaccf Author: Caolán McNamara <caol...@redhat.com> Date: Mon Oct 14 20:43:02 2013 +0100 CID#707595 uninitialized values Change-Id: Ic41348b7ebce95325c8449c21b6f303ca54c2417 diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx index d723f89..2859993 100644 --- a/vcl/unx/generic/window/salframe.cxx +++ b/vcl/unx/generic/window/salframe.cxx @@ -2666,7 +2666,7 @@ void X11SalFrame::SimulateKeyPress( sal_uInt16 nKeyCode ) long X11SalFrame::HandleMouseEvent( XEvent *pEvent ) { - SalMouseEvent aMouseEvt; + SalMouseEvent aMouseEvt = {0, 0, 0, 0, 0}; sal_uInt16 nEvent = 0; bool bClosePopups = false; commit 3e7bf110643b2672c582c706f41527928d38a669 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Oct 14 20:40:30 2013 +0100 CID#707583 uninitialized variables Change-Id: I2e494843226b4dcb72eadfabd55f6e6de42ddfc6 diff --git a/vcl/inc/salwtype.hxx b/vcl/inc/salwtype.hxx index 1ae6087..544c7ad 100644 --- a/vcl/inc/salwtype.hxx +++ b/vcl/inc/salwtype.hxx @@ -191,6 +191,15 @@ struct SalExtTextInputPosEvent long mnHeight; // Cursor-Height in Pixel long mnExtWidth; // Width of the PreEdit area bool mbVertical; // true if in vertical mode + SalExtTextInputPosEvent() + : mnX(0) + , mnY(0) + , mnWidth(0) + , mnHeight(0) + , mnExtWidth(0) + , mbVertical(false) + { + } }; // INPUTCONTEXTCHANGE commit 6f30b8705222262d707b6f395866e76bfb521c14 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Oct 14 20:38:32 2013 +0100 fix mangled indent Change-Id: Iefef3ac1e56444e387916dd1eae65007152c831e diff --git a/vcl/unx/generic/app/i18n_cb.cxx b/vcl/unx/generic/app/i18n_cb.cxx index 04b41fb..6c34568 100644 --- a/vcl/unx/generic/app/i18n_cb.cxx +++ b/vcl/unx/generic/app/i18n_cb.cxx @@ -321,7 +321,7 @@ void PreeditDrawCallback(XIC ic, XPointer client_data, XIMPreeditDrawCallbackStruct *call_data) { - preedit_data_t* pPreeditData = (preedit_data_t*)client_data; + preedit_data_t* pPreeditData = (preedit_data_t*)client_data; // if there's nothing to change then change nothing if ( ( (call_data->text == NULL) && (call_data->chg_length == 0) ) @@ -341,11 +341,11 @@ PreeditDrawCallback(XIC ic, XPointer client_data, // chg_first and chg_length are guaranteed to be nonnegative // handle text deletion - if (call_data->text == NULL) + if (call_data->text == NULL) { Preedit_DeleteText(&(pPreeditData->aText), call_data->chg_first, call_data->chg_length ); - } + } else { // handle text insertion @@ -355,42 +355,41 @@ PreeditDrawCallback(XIC ic, XPointer client_data, Preedit_InsertText(&(pPreeditData->aText), call_data->text, call_data->chg_first); } - else - // handle text replacement by deletion and insertion of text, - // not smart, just good enough - if ( (call_data->chg_length != 0) + else if ( (call_data->chg_length != 0) && (call_data->text->string.wide_char != NULL)) { + // handle text replacement by deletion and insertion of text, + // not smart, just good enough + Preedit_DeleteText(&(pPreeditData->aText), call_data->chg_first, call_data->chg_length); Preedit_InsertText(&(pPreeditData->aText), call_data->text, call_data->chg_first); } - else - // not really a text update, only attributes are concerned - if ( (call_data->chg_length != 0) + else if ( (call_data->chg_length != 0) && (call_data->text->string.wide_char == NULL)) { + // not really a text update, only attributes are concerned Preedit_UpdateAttributes(&(pPreeditData->aText), call_data->text->feedback, call_data->chg_first, call_data->chg_length); } - } + } - // - // build the SalExtTextInputEvent and send it up - // - pPreeditData->aInputEv.mnTime = 0; - pPreeditData->aInputEv.mpTextAttr = Preedit_FeedbackToSAL( - pPreeditData->aText.pCharStyle, pPreeditData->aText.nLength, pPreeditData->aInputFlags); - pPreeditData->aInputEv.mnCursorPos = call_data->caret; - pPreeditData->aInputEv.maText = OUString(pPreeditData->aText.pUnicodeBuffer, + // + // build the SalExtTextInputEvent and send it up + // + pPreeditData->aInputEv.mnTime = 0; + pPreeditData->aInputEv.mpTextAttr = Preedit_FeedbackToSAL( + pPreeditData->aText.pCharStyle, pPreeditData->aText.nLength, pPreeditData->aInputFlags); + pPreeditData->aInputEv.mnCursorPos = call_data->caret; + pPreeditData->aInputEv.maText = OUString(pPreeditData->aText.pUnicodeBuffer, pPreeditData->aText.nLength); pPreeditData->aInputEv.mnCursorFlags = 0; // default: make cursor visible - pPreeditData->aInputEv.mnDeltaStart = 0; // call_data->chg_first; - pPreeditData->aInputEv.mbOnlyCursor = False; + pPreeditData->aInputEv.mnDeltaStart = 0; // call_data->chg_first; + pPreeditData->aInputEv.mbOnlyCursor = False; - if ( pPreeditData->eState == ePreeditStatusActive && pPreeditData->pFrame ) + if ( pPreeditData->eState == ePreeditStatusActive && pPreeditData->pFrame ) pPreeditData->pFrame->CallCallback(SALEVENT_EXTTEXTINPUT, (void*)&pPreeditData->aInputEv); if (pPreeditData->aText.nLength == 0 && pPreeditData->pFrame ) pPreeditData->pFrame->CallCallback( SALEVENT_ENDEXTTEXTINPUT, (void*)NULL ); @@ -404,23 +403,23 @@ PreeditDrawCallback(XIC ic, XPointer client_data, void GetPreeditSpotLocation(XIC ic, XPointer client_data) { - // - // Send SalEventExtTextInputPos event to get spotlocation - // - SalExtTextInputPosEvent mPosEvent; - preedit_data_t* pPreeditData = (preedit_data_t*)client_data; + // + // Send SalEventExtTextInputPos event to get spotlocation + // + SalExtTextInputPosEvent mPosEvent; + preedit_data_t* pPreeditData = (preedit_data_t*)client_data; if( pPreeditData->pFrame ) pPreeditData->pFrame->CallCallback(SALEVENT_EXTTEXTINPUTPOS, (void*)&mPosEvent); - XPoint point; - point.x = mPosEvent.mnX + mPosEvent.mnWidth; - point.y = mPosEvent.mnY + mPosEvent.mnHeight; + XPoint point; + point.x = mPosEvent.mnX + mPosEvent.mnWidth; + point.y = mPosEvent.mnY + mPosEvent.mnHeight; - XVaNestedList preedit_attr; - preedit_attr = XVaCreateNestedList(0, XNSpotLocation, &point, NULL); - XSetICValues(ic, XNPreeditAttributes, preedit_attr, NULL); - XFree(preedit_attr); + XVaNestedList preedit_attr; + preedit_attr = XVaCreateNestedList(0, XNSpotLocation, &point, NULL); + XSetICValues(ic, XNPreeditAttributes, preedit_attr, NULL); + XFree(preedit_attr); return; }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits