sc/source/ui/view/cellsh1.cxx | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-)
New commits: commit fa8eff36beb46791ce5859a44d5217ea6593588c Author: Henry Castro <hcas...@collabora.com> Date: Thu Oct 20 15:56:58 2016 -0400 sc: check SID_EDIT_POSTIT parameters Avoid crash when execute .uno:EditAnnotation with missing arguments Change-Id: Iaee8694b7481933f3672a3847264a49a6503b82e Reviewed-on: https://gerrit.libreoffice.org/30116 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Henry Castro <hcas...@collabora.com> diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx index 8258d65..426ff9a 100644 --- a/sc/source/ui/view/cellsh1.cxx +++ b/sc/source/ui/view/cellsh1.cxx @@ -2197,20 +2197,28 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) case SID_INSERT_POSTIT: case SID_EDIT_POSTIT: - if ( pReqArgs ) { - const SvxPostItAuthorItem& rAuthorItem = static_cast<const SvxPostItAuthorItem&>(pReqArgs->Get( SID_ATTR_POSTIT_AUTHOR )); - const SvxPostItDateItem& rDateItem = static_cast<const SvxPostItDateItem&>(pReqArgs->Get( SID_ATTR_POSTIT_DATE )); - const SvxPostItTextItem& rTextItem = static_cast<const SvxPostItTextItem&>(pReqArgs->Get( SID_ATTR_POSTIT_TEXT )); + const SfxPoolItem* pAuthor; + const SfxPoolItem* pDate; + const SfxPoolItem* pText; - ScAddress aPos( GetViewData()->GetCurX(), GetViewData()->GetCurY(), GetViewData()->GetTabNo() ); - pTabViewShell->ReplaceNote( aPos, rTextItem.GetValue(), &rAuthorItem.GetValue(), &rDateItem.GetValue() ); + if ( pReqArgs && pReqArgs->HasItem( SID_ATTR_POSTIT_AUTHOR, &pAuthor ) && + pReqArgs->HasItem( SID_ATTR_POSTIT_DATE, &pDate) && + pReqArgs->HasItem( SID_ATTR_POSTIT_TEXT, &pText) ) + { + const SvxPostItAuthorItem* pAuthorItem = static_cast<const SvxPostItAuthorItem*>( pAuthor ); + const SvxPostItDateItem* pDateItem = static_cast<const SvxPostItDateItem*>( pDate ); + const SvxPostItTextItem* pTextItem = static_cast<const SvxPostItTextItem*>( pText ); + + ScAddress aPos( GetViewData()->GetCurX(), GetViewData()->GetCurY(), GetViewData()->GetTabNo() ); + pTabViewShell->ReplaceNote( aPos, pTextItem->GetValue(), &pAuthorItem->GetValue(), &pDateItem->GetValue() ); + } + else + { + pTabViewShell->EditNote(); // note object to edit + } rReq.Done(); } - else - { - pTabViewShell->EditNote(); // note object to edit - } break; case FID_NOTE_VISIBLE: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits