Skip to content

Commit

Permalink
'make screenshot' use-after-free fixes
Browse files Browse the repository at this point in the history
Change-Id: I4302d0d767a1bf50fd34a78e9aa0ad6d6b0c7a22
  • Loading branch information
stbergmann committed Nov 10, 2016
1 parent d543b4d commit 8cfa3f4
Show file tree
Hide file tree
Showing 19 changed files with 40 additions and 41 deletions.
4 changes: 2 additions & 2 deletions basctl/qa/unit/basctl-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class BasctlDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
BasctlDialogsTest();
Expand All @@ -53,7 +53,7 @@ void BasctlDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* BasctlDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> BasctlDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions chart2/qa/unit/chart2-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class Chart2DialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
Chart2DialogsTest();
Expand All @@ -53,7 +53,7 @@ void Chart2DialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* Chart2DialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> Chart2DialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions cui/qa/unit/cui-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class CuiDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
CuiDialogsTest();
Expand All @@ -53,7 +53,7 @@ void CuiDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* CuiDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> CuiDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions dbaccess/qa/unit/dbaccess-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class DbaccessDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
DbaccessDialogsTest();
Expand All @@ -53,7 +53,7 @@ void DbaccessDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* DbaccessDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> DbaccessDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions desktop/qa/unit/desktop-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class DesktopDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
DesktopDialogsTest();
Expand All @@ -53,7 +53,7 @@ void DesktopDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* DesktopDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> DesktopDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions filter/qa/unit/filter-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class FilterDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
FilterDialogsTest();
Expand All @@ -53,7 +53,7 @@ void FilterDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* FilterDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> FilterDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions include/test/screenshot_test.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ private:

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) = 0;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) = 0;

public:
ScreenshotTest();
Expand All @@ -53,7 +53,7 @@ public:
/// Dialog creation for known dialogs by Name (path and UIXMLDescription, *.ui file).
/// This uses maKnownDialogs to check if known, and if so, calls createDialogByID
/// with the ID from the map
VclAbstractDialog* createDialogByName(const OString& rName);
VclPtr<VclAbstractDialog> createDialogByName(const OString& rName);

/// version for AbstractDialogs, the ones created in AbstractDialogFactories
void dumpDialogToPath(VclAbstractDialog& rDialog);
Expand Down
4 changes: 2 additions & 2 deletions reportdesign/qa/unit/reportdesign-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class ReportdesignDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
ReportdesignDialogsTest();
Expand All @@ -53,7 +53,7 @@ void ReportdesignDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*
// fill map of known dilogs
}

VclAbstractDialog* ReportdesignDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> ReportdesignDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
6 changes: 3 additions & 3 deletions sc/qa/unit/screenshots/screenshots.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class ScScreenshotTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
ScScreenshotTest();
Expand Down Expand Up @@ -142,9 +142,9 @@ void ScScreenshotTest::registerKnownDialogsByID(mapType& rKnownDialogs)
rKnownDialogs["modules/scalc/ui/formatcellsdialog.ui"] = 14;
}

VclAbstractDialog* ScScreenshotTest::createDialogByID(sal_uInt32 nID)
VclPtr<VclAbstractDialog> ScScreenshotTest::createDialogByID(sal_uInt32 nID)
{
VclAbstractDialog *pReturnDialog = nullptr;
VclPtr<VclAbstractDialog> pReturnDialog;
////FIXME: translatable string here
const OUString aDefaultSheetName("Sheet1");

Expand Down
6 changes: 3 additions & 3 deletions sd/qa/unit/dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ class SdDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
SdDialogsTest();
Expand Down Expand Up @@ -255,9 +255,9 @@ void SdDialogsTest::registerKnownDialogsByID(mapType& rKnownDialogs)
rKnownDialogs["modules/simpress/ui/headerfooterdialog.ui"] = 22;
}

VclAbstractDialog* SdDialogsTest::createDialogByID(sal_uInt32 nID)
VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID)
{
VclAbstractDialog* pRetval = nullptr;
VclPtr<VclAbstractDialog> pRetval;

if (getSdAbstractDialogFactory())
{
Expand Down
4 changes: 2 additions & 2 deletions sfx2/qa/unit/sfx2-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class Sfx2DialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
Sfx2DialogsTest();
Expand All @@ -53,7 +53,7 @@ void Sfx2DialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* Sfx2DialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> Sfx2DialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions starmath/qa/unit/starmath-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class StarmathDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
StarmathDialogsTest();
Expand All @@ -53,7 +53,7 @@ void StarmathDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* StarmathDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> StarmathDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions svtools/qa/unit/svtools-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class SvtoolsDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
SvtoolsDialogsTest();
Expand All @@ -53,7 +53,7 @@ void SvtoolsDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* SvtoolsDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> SvtoolsDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions svx/qa/unit/svx-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class SvxDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
SvxDialogsTest();
Expand All @@ -53,7 +53,7 @@ void SvxDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* SvxDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> SvxDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions sw/qa/unit/sw-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class SwDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
SwDialogsTest();
Expand All @@ -53,7 +53,7 @@ void SwDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* SwDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> SwDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
5 changes: 2 additions & 3 deletions test/source/screenshot_test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -107,17 +107,16 @@ void ScreenshotTest::saveScreenshot(Dialog& rDialog)
}
}

VclAbstractDialog* ScreenshotTest::createDialogByName(const OString& rName)
VclPtr<VclAbstractDialog> ScreenshotTest::createDialogByName(const OString& rName)
{
VclAbstractDialog* pRetval = nullptr;
const mapType::const_iterator aHit = maKnownDialogs.find(rName);

if (aHit != maKnownDialogs.end())
{
return createDialogByID((*aHit).second);
}

return pRetval;
return VclPtr<VclAbstractDialog>();
}

void ScreenshotTest::dumpDialogToPath(VclAbstractDialog& rDialog)
Expand Down
4 changes: 2 additions & 2 deletions uui/qa/unit/uui-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class UuiDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
UuiDialogsTest();
Expand All @@ -53,7 +53,7 @@ void UuiDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* UuiDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> UuiDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions vcl/qa/unit/vcl-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class VclDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
VclDialogsTest();
Expand All @@ -53,7 +53,7 @@ void VclDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/)
// fill map of known dilogs
}

VclAbstractDialog* VclDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> VclDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions xmlsecurity/qa/unit/xmlsecurity-dialogs-test.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class XmlsecurityDialogsTest : public ScreenshotTest

/// dialog creation for known dialogs by ID. Has to be implemented for
/// each registered known dialog
virtual VclAbstractDialog* createDialogByID(sal_uInt32 nID) override;
virtual VclPtr<VclAbstractDialog> createDialogByID(sal_uInt32 nID) override;

public:
XmlsecurityDialogsTest();
Expand All @@ -53,7 +53,7 @@ void XmlsecurityDialogsTest::registerKnownDialogsByID(mapType& /*rKnownDialogs*/
// fill map of known dilogs
}

VclAbstractDialog* XmlsecurityDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
VclPtr<VclAbstractDialog> XmlsecurityDialogsTest::createDialogByID(sal_uInt32 /*nID*/)
{
return nullptr;
}
Expand Down

0 comments on commit 8cfa3f4

Please sign in to comment.