From bb62eff4b4202ac85f3366d21fb1cbef52958b6d Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Wed, 15 May 2019 08:59:01 +0200 Subject: Check passed pointers Change-Id: Idf5e77e4122ad4b5b91f25c50fdaaf25e34a76ae Reviewed-on: https://gerrit.libreoffice.org/72336 Tested-by: Jenkins Reviewed-by: Mike Kaganski --- shell/source/win32/spsupp/COMOpenDocuments.cxx | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'shell/source/win32/spsupp') diff --git a/shell/source/win32/spsupp/COMOpenDocuments.cxx b/shell/source/win32/spsupp/COMOpenDocuments.cxx index 4d00b8de6c46..13fdc6f8e5f3 100644 --- a/shell/source/win32/spsupp/COMOpenDocuments.cxx +++ b/shell/source/win32/spsupp/COMOpenDocuments.cxx @@ -314,6 +314,8 @@ STDMETHODIMP COMOpenDocuments::CreateNewDocument2( BSTR /*bstrDefaultSaveLocation*/, // A string that contains the path that specifies a suggested default location for saving the new document VARIANT_BOOL* pbResult) // true if the document creation succeeds; otherwise false { + if (!pbResult) + return E_POINTER; // TODO: resolve the program from varProgID (nullptr -> default?) HRESULT hr = LOStart(L"-n", bstrTemplateLocation, m_aObjectSafety.GetSafe_forUntrustedCaller() || m_aObjectSafety.GetSafe_forUntrustedData()); *pbResult = toVBool(SUCCEEDED(hr)); @@ -365,6 +367,8 @@ STDMETHODIMP COMOpenDocuments::ViewDocument3( VARIANT /*varProgID*/, // An optional string that contains the ProgID of the application with which to open the document. If this argument is omitted, the default viewer for the document is used VARIANT_BOOL *pbResult) // true if the document was successfully opened; otherwise false { + if (!pbResult) + return E_POINTER; // TODO: resolve the program from varProgID (nullptr -> default?) HRESULT hr = LOStart(L"--view", bstrDocumentLocation, m_aObjectSafety.GetSafe_forUntrustedCaller() || m_aObjectSafety.GetSafe_forUntrustedData()); *pbResult = toVBool(SUCCEEDED(hr)); @@ -427,6 +431,8 @@ STDMETHODIMP COMOpenDocuments::EditDocument3( VARIANT /*varProgID*/, // An optional string that contains the ProgID of the application with which to edit the document. If this argument is omitted, the default editor for the document is used VARIANT_BOOL *pbResult) // true if the document was successfully opened; otherwise false { + if (!pbResult) + return E_POINTER; // TODO: resolve the program from varProgID (nullptr -> default?) HRESULT hr = LOStart(L"-o", bstrDocumentLocation, m_aObjectSafety.GetSafe_forUntrustedCaller() || m_aObjectSafety.GetSafe_forUntrustedData()); *pbResult = toVBool(SUCCEEDED(hr)); -- cgit