[Libreoffice-commits] core.git: 2 commits - desktop/qa
Miklos Vajna (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jul 31 13:22:17 UTC 2019
desktop/qa/desktop_lib/test_desktop_lib.cxx | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
New commits:
commit 98c0cefb18d8af7aa4732708ba0ae6be2e808d6f
Author: Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Wed Jul 31 12:40:29 2019 +0200
Commit: Miklos Vajna <vmiklos at collabora.com>
CommitDate: Wed Jul 31 15:21:41 2019 +0200
desktop: fix UB in DesktopLOKTest::testCommentsCallbacksWriter()
This was similar to the previous
DesktopLOKTest::testWriterCommentInsertCursor() case. Also, go via the
vtable in desktop/ so the callback caching there is not bypassed, which
could be another source of dangling pointers.
Change-Id: I78802b9014ece8f376ae3cf7c517b01c7d1076a0
Reviewed-on: https://gerrit.libreoffice.org/76737
Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
Tested-by: Jenkins
diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index 65c313cedfd0..6ad9c78edd13 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -1941,10 +1941,10 @@ void DesktopLOKTest::testWriterCommentInsertCursor()
CPPUNIT_ASSERT(aView1.m_aOwnCursor.IsEmpty());
Scheduler::ProcessEventsToIdle();
- SfxLokHelper::setView(nView1);
- SfxViewShell::Current()->registerLibreOfficeKitViewCallback(nullptr, nullptr);
- SfxLokHelper::setView(nView2);
- SfxViewShell::Current()->registerLibreOfficeKitViewCallback(nullptr, nullptr);
+ pDocument->m_pDocumentClass->setView(pDocument, nView1);
+ pDocument->m_pDocumentClass->registerCallback(pDocument, nullptr, nullptr);
+ pDocument->m_pDocumentClass->setView(pDocument, nView2);
+ pDocument->m_pDocumentClass->registerCallback(pDocument, nullptr, nullptr);
}
#if HAVE_MORE_FONTS
@@ -2141,9 +2141,11 @@ void DesktopLOKTest::testCommentsCallbacksWriter()
ViewCallback aView2;
LibLODocument_Impl* pDocument = loadDoc("comments.odt");
pDocument->m_pDocumentClass->initializeForRendering(pDocument, "{}");
+ int nView1 = pDocument->m_pDocumentClass->getView(pDocument);
pDocument->m_pDocumentClass->registerCallback(pDocument, &ViewCallback::callback, &aView1);
pDocument->m_pDocumentClass->createView(pDocument);
pDocument->m_pDocumentClass->initializeForRendering(pDocument, "{}");
+ int nView2 = pDocument->m_pDocumentClass->getView(pDocument);
pDocument->m_pDocumentClass->registerCallback(pDocument, &ViewCallback::callback, &aView2);
// Add a new comment
@@ -2217,7 +2219,10 @@ void DesktopLOKTest::testCommentsCallbacksWriter()
boost::property_tree::read_json(aStream, aTree);
CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(5), aTree.get_child("comments").size());
- pDocument->m_pDocumentClass->registerCallback(pDocument, nullptr, reinterpret_cast<void*>(1));
+ pDocument->m_pDocumentClass->setView(pDocument, nView1);
+ pDocument->m_pDocumentClass->registerCallback(pDocument, nullptr, nullptr);
+ pDocument->m_pDocumentClass->setView(pDocument, nView2);
+ pDocument->m_pDocumentClass->registerCallback(pDocument, nullptr, nullptr);
}
void DesktopLOKTest::testRunMacro()
commit d2355c7f27578ba04973ece3d2e58cfb60fb0714
Author: Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Wed Jul 31 12:21:34 2019 +0200
Commit: Miklos Vajna <vmiklos at collabora.com>
CommitDate: Wed Jul 31 15:21:30 2019 +0200
desktop: fix UB in DesktopLOKTest::testWriterCommentInsertCursor()
This was introduced in 70d3bbe11e56f12a339a5b8759b53a96b4fe84ab (sfx2:
Enable sidebar on calc and writer, but not in impress, 2019-05-02).
See <https://gerrit.libreoffice.org/76555> for an ubsan backtrace.
Change-Id: Ib9bf9b12e78a29b2a165bb4ceda144c46f38f308
Reviewed-on: https://gerrit.libreoffice.org/76735
Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
Tested-by: Miklos Vajna <vmiklos at collabora.com>
diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index 112f29f4c59e..65c313cedfd0 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -1912,9 +1912,11 @@ void DesktopLOKTest::testWriterCommentInsertCursor()
ViewCallback aView2;
LibLODocument_Impl* pDocument = loadDoc("blank_text.odt");
pDocument->m_pDocumentClass->initializeForRendering(pDocument, "{}");
+ int nView1 = SfxLokHelper::getView();
pDocument->m_pDocumentClass->registerCallback(pDocument, &ViewCallback::callback, &aView1);
pDocument->m_pDocumentClass->createView(pDocument);
pDocument->m_pDocumentClass->initializeForRendering(pDocument, "{}");
+ int nView2 = SfxLokHelper::getView();
pDocument->m_pDocumentClass->registerCallback(pDocument, &ViewCallback::callback, &aView2);
pDocument->m_pDocumentClass->postKeyEvent(pDocument, LOK_KEYEVENT_KEYINPUT, 'x', 0);
pDocument->m_pDocumentClass->postKeyEvent(pDocument, LOK_KEYEVENT_KEYUP, 'x', 0);
@@ -1939,7 +1941,10 @@ void DesktopLOKTest::testWriterCommentInsertCursor()
CPPUNIT_ASSERT(aView1.m_aOwnCursor.IsEmpty());
Scheduler::ProcessEventsToIdle();
- pDocument->m_pDocumentClass->registerCallback(pDocument, nullptr, reinterpret_cast<void*>(1));
+ SfxLokHelper::setView(nView1);
+ SfxViewShell::Current()->registerLibreOfficeKitViewCallback(nullptr, nullptr);
+ SfxLokHelper::setView(nView2);
+ SfxViewShell::Current()->registerLibreOfficeKitViewCallback(nullptr, nullptr);
}
#if HAVE_MORE_FONTS
More information about the Libreoffice-commits
mailing list