[Libreoffice-commits] core.git: desktop/source jvmfwk/plugins odk/source sal/osl setup_native/source soltools/mkdepend vcl/source vcl/win

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Sun Mar 31 14:44:09 UTC 2019


 desktop/source/lib/init.cxx                                       |   13 ++++
 jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx               |    2 
 odk/source/unoapploader/win/unoapploader.c                        |    3 +
 sal/osl/w32/file_dirvol.cxx                                       |   28 ++++++----
 sal/osl/w32/file_url.cxx                                          |    2 
 sal/osl/w32/pipe.cxx                                              |    2 
 sal/osl/w32/security.cxx                                          |    2 
 setup_native/source/win32/customactions/regactivex/regactivex.cxx |    3 +
 setup_native/source/win32/customactions/sellang/sellang.cxx       |    2 
 setup_native/source/win32/customactions/tools/checkversion.cxx    |    2 
 soltools/mkdepend/main.c                                          |    4 +
 vcl/source/fontsubset/sft.cxx                                     |   14 ++---
 vcl/win/gdi/salprn.cxx                                            |    1 
 13 files changed, 60 insertions(+), 18 deletions(-)

New commits:
commit 3b25ea6d83041c03d06a47fb5e278372181b8a6d
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Sun Mar 31 16:45:29 2019 +0300
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Sun Mar 31 16:43:44 2019 +0200

    tdf#120703 PVS: Silence V575 warnings
    
    V575 The potential null pointer is passed into 'foo' function
    
    Add asserts to those cases that are related to OOM cases. There's
    nothing to be done if the assertions fail anyway.
    
    Change-Id: I92ac95d44f512aa1948b1552b0e1f6da695a9f92
    Reviewed-on: https://gerrit.libreoffice.org/70008
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index dfbbdd8386dc..ba77d5ad10d3 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -2239,6 +2239,7 @@ static char* doc_getPartInfo(LibreOfficeKitDocument* pThis, int nPart)
     OString aString = OUStringToOString(aPartInfo, RTL_TEXTENCODING_UTF8);
 
     char* pMemory = static_cast<char*>(malloc(aString.getLength() + 1));
+    assert(pMemory); // Don't handle OOM conditions
     strcpy(pMemory, aString.getStr());
     return pMemory;
 }
@@ -2259,6 +2260,7 @@ static char* doc_getPartPageRectangles(LibreOfficeKitDocument* pThis)
     OUString sRectangles = pDoc->getPartPageRectangles();
     OString aString = OUStringToOString(sRectangles, RTL_TEXTENCODING_UTF8);
     char* pMemory = static_cast<char*>(malloc(aString.getLength() + 1));
+    assert(pMemory); // Don't handle OOM conditions
     strcpy(pMemory, aString.getStr());
     return pMemory;
 
@@ -2280,6 +2282,7 @@ static char* doc_getPartName(LibreOfficeKitDocument* pThis, int nPart)
     OUString sName = pDoc->getPartName( nPart );
     OString aString = OUStringToOString(sName, RTL_TEXTENCODING_UTF8);
     char* pMemory = static_cast<char*>(malloc(aString.getLength() + 1));
+    assert(pMemory); // Don't handle OOM conditions
     strcpy(pMemory, aString.getStr());
     return pMemory;
 
@@ -2301,6 +2304,7 @@ static char* doc_getPartHash(LibreOfficeKitDocument* pThis, int nPart)
     OUString sHash = pDoc->getPartHash(nPart);
     OString aString = OUStringToOString(sHash, RTL_TEXTENCODING_UTF8);
     char* pMemory = static_cast<char*>(malloc(aString.getLength() + 1));
+    assert(pMemory); // Don't handle OOM conditions
     strcpy(pMemory, aString.getStr());
     return pMemory;
 
@@ -3100,6 +3104,7 @@ static char* doc_getTextSelection(LibreOfficeKitDocument* pThis, const char* pMi
         aRet = pDoc->getTextSelection("text/plain;charset=utf-8", aUsedMimeType);
 
     char* pMemory = static_cast<char*>(malloc(aRet.getLength() + 1));
+    assert(pMemory); // Don't handle OOM conditions
     strcpy(pMemory, aRet.getStr());
 
     if (pUsedMimeType)
@@ -3215,6 +3220,7 @@ static char* getLanguages(const char* pCommand)
     std::stringstream aStream;
     boost::property_tree::write_json(aStream, aTree);
     char* pJson = static_cast<char*>(malloc(aStream.str().size() + 1));
+    assert(pJson); // Don't handle OOM conditions
     strcpy(pJson, aStream.str().c_str());
     pJson[aStream.str().size()] = '\0';
     return pJson;
@@ -3253,6 +3259,7 @@ static char* getFonts (const char* pCommand)
     std::stringstream aStream;
     boost::property_tree::write_json(aStream, aTree);
     char* pJson = static_cast<char*>(malloc(aStream.str().size() + 1));
+    assert(pJson); // Don't handle OOM conditions
     strcpy(pJson, aStream.str().c_str());
     pJson[aStream.str().size()] = '\0';
     return pJson;
@@ -3305,6 +3312,7 @@ static char* getFontSubset (const OString& aFontName)
     std::stringstream aStream;
     boost::property_tree::write_json(aStream, aTree);
     char* pJson = static_cast<char*>(malloc(aStream.str().size() + 1));
+    assert(pJson); // Don't handle OOM conditions
     strcpy(pJson, aStream.str().c_str());
     pJson[aStream.str().size()] = '\0';
     return pJson;
@@ -3429,6 +3437,7 @@ static char* getStyles(LibreOfficeKitDocument* pThis, const char* pCommand)
     std::stringstream aStream;
     boost::property_tree::write_json(aStream, aTree);
     char* pJson = static_cast<char*>(malloc(aStream.str().size() + 1));
+    assert(pJson); // Don't handle OOM conditions
     strcpy(pJson, aStream.str().c_str());
     pJson[aStream.str().size()] = '\0';
     return pJson;
@@ -3650,6 +3659,7 @@ static char* doc_getCommandValues(LibreOfficeKitDocument* pThis, const char* pCo
         OString aString = OUStringToOString(aHeaders, RTL_TEXTENCODING_UTF8);
 
         char* pMemory = static_cast<char*>(malloc(aString.getLength() + 1));
+        assert(pMemory); // Don't handle OOM conditions
         strcpy(pMemory, aString.getStr());
         return pMemory;
     }
@@ -3701,6 +3711,7 @@ static char* doc_getCommandValues(LibreOfficeKitDocument* pThis, const char* pCo
         OString aString = pDoc->getCellCursor(nOutputWidth, nOutputHeight, nTileWidth, nTileHeight);
 
         char* pMemory = static_cast<char*>(malloc(aString.getLength() + 1));
+        assert(pMemory); // Don't handle OOM conditions
         strcpy(pMemory, aString.getStr());
         return pMemory;
     }
@@ -4194,6 +4205,7 @@ static char* lo_getError (LibreOfficeKit *pThis)
     LibLibreOffice_Impl* pLib = static_cast<LibLibreOffice_Impl*>(pThis);
     OString aString = OUStringToOString(pLib->maLastExceptionMsg, RTL_TEXTENCODING_UTF8);
     char* pMemory = static_cast<char*>(malloc(aString.getLength() + 1));
+    assert(pMemory); // Don't handle OOM conditions
     strcpy(pMemory, aString.getStr());
     return pMemory;
 }
@@ -4290,6 +4302,7 @@ static char* lo_getVersionInfo(SAL_UNUSED_PARAMETER LibreOfficeKit* /*pThis*/)
     const OString sVersionStr = OUStringToOString(ReplaceStringHookProc(sVersionStrTemplate), RTL_TEXTENCODING_UTF8);
 
     char* pVersion = static_cast<char*>(malloc(sVersionStr.getLength() + 1));
+    assert(pVersion); // Don't handle OOM conditions
     strcpy(pVersion, sVersionStr.getStr());
     return pVersion;
 }
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
index 6949ed903b1e..b2cc8ed40803 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
@@ -528,7 +528,7 @@ static void do_msvcr_magic(OUString const &jvm_dll)
     }
 
     PIMAGE_DOS_HEADER dos_hdr = static_cast<PIMAGE_DOS_HEADER>(malloc(st.st_size));
-
+    assert(dos_hdr);
     if (fread(dos_hdr, st.st_size, 1, f) != 1 ||
         memcmp(dos_hdr, "MZ", 2) != 0 ||
         dos_hdr->e_lfanew < 0 ||
diff --git a/odk/source/unoapploader/win/unoapploader.c b/odk/source/unoapploader/win/unoapploader.c
index dd5cfaf78439..455f4689adad 100644
--- a/odk/source/unoapploader/win/unoapploader.c
+++ b/odk/source/unoapploader/win/unoapploader.c
@@ -17,6 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <assert.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -208,6 +209,7 @@ int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
         if ( value != NULL )
             size += wcslen( PATHSEPARATOR ) + wcslen( value );
         wchar_t* envstr = (wchar_t*) malloc( size*sizeof(wchar_t) );
+        assert(envstr);
         wcscpy( envstr, ENVVARNAME );
         wcscat( envstr, L"=" );
         wcscat( envstr, path );
@@ -312,6 +314,7 @@ wchar_t* createCommandLine( wchar_t const * appendix )
         /* create the command line */
         cmdline = (wchar_t*) malloc( (wcslen( DQUOTE ) + wcslen( cmdname ) +
             wcslen ( DQUOTE ) + wcslen( SPACE ) + wcslen( appendix ) + 1) * sizeof(wchar_t) );
+        assert(cmdline);
         wcscpy( cmdline, DQUOTE );
         wcscat( cmdline, cmdname );
         wcscat( cmdline, DQUOTE );
diff --git a/sal/osl/w32/file_dirvol.cxx b/sal/osl/w32/file_dirvol.cxx
index cfdf957ef0de..36a4b5d4013d 100644
--- a/sal/osl/w32/file_dirvol.cxx
+++ b/sal/osl/w32/file_dirvol.cxx
@@ -345,11 +345,12 @@ static HANDLE WINAPI OpenDirectory( rtl_uString* pPath)
             }
 
             WCHAR* szFileMask = static_cast< WCHAR* >( malloc( sizeof( WCHAR ) * ( nLen + nSuffLen + 1 ) ) );
-
+            assert(szFileMask); // Don't handle OOM conditions
             wcscpy( szFileMask, o3tl::toW(rtl_uString_getStr( pPath )) );
             wcscat( szFileMask, pSuffix );
 
             pDirectory = static_cast<LPDIRECTORY>(HeapAlloc(GetProcessHeap(), 0, sizeof(DIRECTORY)));
+            assert(pDirectory); // Don't handle OOM conditions
             pDirectory->hFind = FindFirstFileW(szFileMask, &pDirectory->aFirstData);
 
             if (!IsValidHandle(pDirectory->hFind))
@@ -437,6 +438,7 @@ static oslFileError osl_openLocalRoot(
         Directory_Impl  *pDirImpl;
 
         pDirImpl = static_cast<Directory_Impl*>(malloc( sizeof(Directory_Impl)));
+        assert(pDirImpl); // Don't handle OOM conditions
         ZeroMemory( pDirImpl, sizeof(Directory_Impl) );
         rtl_uString_newFromString( &pDirImpl->m_pDirectoryPath, strSysPath );
 
@@ -501,6 +503,7 @@ static oslFileError osl_openFileDirectory(
     *pDirectory = nullptr;
 
     Directory_Impl *pDirImpl = static_cast<Directory_Impl*>(malloc(sizeof(Directory_Impl)));
+    assert(pDirImpl); // Don't handle OOM conditions
     ZeroMemory( pDirImpl, sizeof(Directory_Impl) );
     rtl_uString_newFromString( &pDirImpl->m_pDirectoryPath, strDirectoryPath );
 
@@ -566,6 +569,7 @@ static oslFileError osl_openNetworkServer(
         Directory_Impl  *pDirImpl;
 
         pDirImpl = static_cast<Directory_Impl*>(malloc(sizeof(Directory_Impl)));
+        assert(pDirImpl); // Don't handle OOM conditions
         ZeroMemory( pDirImpl, sizeof(Directory_Impl) );
         pDirImpl->uType = DIRECTORYTYPE_NETROOT;
         pDirImpl->hDirectory = hEnum;
@@ -1068,18 +1072,24 @@ oslFileError SAL_CALL osl_getDirectoryItem(rtl_uString *strFilePath, oslDirector
             {
                 DirectoryItem_Impl  *pItemImpl =
                     static_cast<DirectoryItem_Impl*>(malloc(sizeof(DirectoryItem_Impl)));
+                if (!pItemImpl)
+                    error = osl_File_E_NOMEM;
 
-                ZeroMemory( pItemImpl, sizeof(DirectoryItem_Impl) );
-                osl_acquireDirectoryItem( static_cast<oslDirectoryItem>(pItemImpl) );
+                if (osl_File_E_None == error)
+                {
+                    ZeroMemory(pItemImpl, sizeof(DirectoryItem_Impl));
+                    osl_acquireDirectoryItem(static_cast<oslDirectoryItem>(pItemImpl));
 
-                CopyMemory( &pItemImpl->FindData, &aFindData, sizeof(WIN32_FIND_DATAW) );
-                rtl_uString_newFromString( &pItemImpl->m_pFullPath, strSysFilePath );
+                    CopyMemory(&pItemImpl->FindData, &aFindData, sizeof(WIN32_FIND_DATAW));
+                    rtl_uString_newFromString(&pItemImpl->m_pFullPath, strSysFilePath);
 
-                // MT: This costs 600ms startup time on fast v60x!
-                // GetCaseCorrectPathName( pItemImpl->szFullPath, pItemImpl->szFullPath, sizeof(pItemImpl->szFullPath) );
+                    // MT: This costs 600ms startup time on fast v60x!
+                    // GetCaseCorrectPathName( pItemImpl->szFullPath, pItemImpl->szFullPath, sizeof(pItemImpl->szFullPath) );
+
+                    pItemImpl->uType = DIRECTORYITEM_FILE;
+                    *pItem = pItemImpl;
+                }
 
-                pItemImpl->uType = DIRECTORYITEM_FILE;
-                *pItem = pItemImpl;
                 FindClose( hFind );
             }
             else
diff --git a/sal/osl/w32/file_url.cxx b/sal/osl/w32/file_url.cxx
index b096515902ba..c8291c056674 100644
--- a/sal/osl/w32/file_url.cxx
+++ b/sal/osl/w32/file_url.cxx
@@ -603,7 +603,7 @@ static void osl_encodeURL_( rtl_uString *strURL, rtl_String **pstrEncodedURL )
     rtl_uString2String( &strUTF8, rtl_uString_getStr( strURL ), rtl_uString_getLength( strURL ), RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS );
 
     pszEncodedURL = static_cast<sal_Char*>(malloc( (rtl_string_getLength( strUTF8 ) * 3 + 1)  * sizeof(sal_Char) ));
-
+    assert(pszEncodedURL); // Don't handle OOM conditions
     pURLDest = pszEncodedURL;
     pURLScan = rtl_string_getStr( strUTF8 );
     nURLScanLen = rtl_string_getLength( strUTF8 );
diff --git a/sal/osl/w32/pipe.cxx b/sal/osl/w32/pipe.cxx
index b128143702a1..f02a8951f3cb 100644
--- a/sal/osl/w32/pipe.cxx
+++ b/sal/osl/w32/pipe.cxx
@@ -136,12 +136,14 @@ oslPipe SAL_CALL osl_createPipe(rtl_uString *strPipeName, oslPipeOptions Options
             PSECURITY_DESCRIPTOR pSecDesc;
 
             pSecDesc = static_cast< PSECURITY_DESCRIPTOR >(malloc(SECURITY_DESCRIPTOR_MIN_LENGTH));
+            assert(pSecDesc); // Don't handle OOM conditions
 
             /* add a NULL disc. ACL to the security descriptor */
             OSL_VERIFY(InitializeSecurityDescriptor(pSecDesc, SECURITY_DESCRIPTOR_REVISION));
             OSL_VERIFY(SetSecurityDescriptorDacl(pSecDesc, TRUE, nullptr, FALSE));
 
             pSecAttr = static_cast< PSECURITY_ATTRIBUTES >(malloc(sizeof(SECURITY_ATTRIBUTES)));
+            assert(pSecAttr); // Don't handle OOM conditions
             pSecAttr->nLength = sizeof(SECURITY_ATTRIBUTES);
             pSecAttr->lpSecurityDescriptor = pSecDesc;
             pSecAttr->bInheritHandle = TRUE;
diff --git a/sal/osl/w32/security.cxx b/sal/osl/w32/security.cxx
index aeecf1b8ca63..f7e14e7e32ae 100644
--- a/sal/osl/w32/security.cxx
+++ b/sal/osl/w32/security.cxx
@@ -19,6 +19,7 @@
 
 #include "system.h"
 
+#include <cassert>
 #include <osl/security.h>
 #include <osl/diagnose.h>
 #include <osl/thread.h>
@@ -782,6 +783,7 @@ static bool getUserNameImpl(oslSecurity Security, rtl_uString **strName,  bool b
 
             WNetGetUserW(nullptr, nullptr, &needed);
             pNameW = static_cast<sal_Unicode *>(malloc (needed*sizeof(sal_Unicode)));
+            assert(pNameW); // Don't handle OOM conditions
 
             if (WNetGetUserW(nullptr, o3tl::toW(pNameW), &needed) == NO_ERROR)
             {
diff --git a/setup_native/source/win32/customactions/regactivex/regactivex.cxx b/setup_native/source/win32/customactions/regactivex/regactivex.cxx
index 293a8c8a4111..f7234a4725c8 100644
--- a/setup_native/source/win32/customactions/regactivex/regactivex.cxx
+++ b/setup_native/source/win32/customactions/regactivex/regactivex.cxx
@@ -23,6 +23,7 @@
 #include <windows.h>
 #include <msiquery.h>
 
+#include <cassert>
 #include <string.h>
 #include <malloc.h>
 
@@ -66,6 +67,7 @@ static void RegisterActiveXNative( const wchar_t* pActiveXPath, int nMode, BOOL
             if ( nLen > nRemoveLen )
             {
                 wchar_t* pProgramPath = static_cast<wchar_t*>( malloc( (nLen - nRemoveLen + 1) * sizeof(wchar_t) ) );
+                assert(pProgramPath); // Don't handle OOM conditions
                 wcsncpy( pProgramPath, pActiveXPath, nLen - nRemoveLen );
                 pProgramPath[ nLen - nRemoveLen ] = 0;
 
@@ -102,6 +104,7 @@ static BOOL GetMsiPropW( MSIHANDLE hMSI, const wchar_t* pPropName, wchar_t** ppV
         sz++;
         DWORD nbytes = sz * sizeof( wchar_t );
         wchar_t* buff = static_cast<wchar_t*>( malloc( nbytes ) );
+        assert(buff); // Don't handle OOM conditions
         ZeroMemory( buff, nbytes );
         MsiGetPropertyW( hMSI, pPropName, buff, &sz );
         *ppValue = buff;
diff --git a/setup_native/source/win32/customactions/sellang/sellang.cxx b/setup_native/source/win32/customactions/sellang/sellang.cxx
index bde31d03ab76..e82560f4239a 100644
--- a/setup_native/source/win32/customactions/sellang/sellang.cxx
+++ b/setup_native/source/win32/customactions/sellang/sellang.cxx
@@ -27,6 +27,7 @@
 #include <msiquery.h>
 #include <malloc.h>
 
+#include <cassert>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -44,6 +45,7 @@ static BOOL GetMsiPropA( MSIHANDLE hMSI, const char* pPropName, char** ppValue )
         sz++;
         DWORD nbytes = sz * sizeof( char );
         char* buff = static_cast<char*>( malloc( nbytes ) );
+        assert(buff); // Don't handle OOM conditions
         ZeroMemory( buff, nbytes );
         MsiGetPropertyA( hMSI, pPropName, buff, &sz );
         *ppValue = buff;
diff --git a/setup_native/source/win32/customactions/tools/checkversion.cxx b/setup_native/source/win32/customactions/tools/checkversion.cxx
index ffb7a8aa4216..daf20963673b 100644
--- a/setup_native/source/win32/customactions/tools/checkversion.cxx
+++ b/setup_native/source/win32/customactions/tools/checkversion.cxx
@@ -21,6 +21,7 @@
 #include <windows.h>
 #include <msiquery.h>
 
+#include <cassert>
 #include <string.h>
 #include <malloc.h>
 #include <stdio.h>
@@ -37,6 +38,7 @@ static BOOL GetMsiPropW( MSIHANDLE hMSI, const wchar_t* pPropName, wchar_t** ppV
         sz++;
         DWORD nbytes = sz * sizeof( wchar_t );
         wchar_t* buff = static_cast<wchar_t*>( malloc( nbytes ) );
+        assert(buff); // Don't handle OOM conditions
         ZeroMemory( buff, nbytes );
         MsiGetPropertyW( hMSI, pPropName, buff, &sz );
         *ppValue = buff;
diff --git a/soltools/mkdepend/main.c b/soltools/mkdepend/main.c
index 844edb390ad2..51b6c8606cc9 100644
--- a/soltools/mkdepend/main.c
+++ b/soltools/mkdepend/main.c
@@ -56,6 +56,7 @@ typedef _W64 int   ssize_t;
 #endif
 
 #include "def.h"
+#include <assert.h>
 #include <string.h>
 #ifdef hpux
 #define sigvec sigvector
@@ -522,7 +523,7 @@ void freefile(struct filepointer *fp)
 char *copy(char const *str)
 {
     char   *p = (char *)malloc(strlen(str) + 1);
-
+    assert(p); // Don't handle OOM conditions
     strcpy(p, str);
     return p;
 }
@@ -718,6 +719,7 @@ char* append_slash(char *path)
         new_string = path;
     } else {
         new_string = (char*)malloc(sizeof(char) * (strlen(path) + 2));
+        assert(new_string); // Don't handle OOM conditions
         strcpy(new_string, path);
         if (native_win_slashes)
             strcat(new_string, "\\");
diff --git a/vcl/source/fontsubset/sft.cxx b/vcl/source/fontsubset/sft.cxx
index 972f5fbf09b8..7df64e41a227 100644
--- a/vcl/source/fontsubset/sft.cxx
+++ b/vcl/source/fontsubset/sft.cxx
@@ -635,14 +635,15 @@ static int GetCompoundTTOutline(TrueTypeFont *ttf, sal_uInt32 glyphID, ControlPo
         return 0;
 
     np = myPoints.size();
-
-    pa = static_cast<ControlPoint*>(calloc(np, sizeof(ControlPoint)));
-    assert(pa != nullptr);
-
     if (np > 0)
-        memcpy( pa, &myPoints[0], np*sizeof(ControlPoint) );
+    {
+        pa = static_cast<ControlPoint*>(calloc(np, sizeof(ControlPoint)));
+        assert(pa != nullptr);
 
-    *pointArray = pa;
+        memcpy(pa, &myPoints[0], np * sizeof(ControlPoint));
+
+        *pointArray = pa;
+    }
     return np;
 }
 
@@ -2537,6 +2538,7 @@ int GetTTNameRecords(TrueTypeFont const *ttf, NameRecord **nr)
     }
 
     NameRecord* rec = static_cast<NameRecord*>(calloc(n, sizeof(NameRecord)));
+    assert(rec);
 
     for (i = 0; i < n; i++) {
         int nLargestFixedOffsetPos = 6 + 10 + 12 * i;
diff --git a/vcl/win/gdi/salprn.cxx b/vcl/win/gdi/salprn.cxx
index d702be988ab1..9f729a14bdde 100644
--- a/vcl/win/gdi/salprn.cxx
+++ b/vcl/win/gdi/salprn.cxx
@@ -1324,6 +1324,7 @@ static DEVMODEW const * ImplSalSetCopies( DEVMODEW const * pDevMode, sal_uLong n
             nCopies = 32765;
         sal_uLong nDevSize = pDevMode->dmSize+pDevMode->dmDriverExtra;
         LPDEVMODEW pNewDevMode = static_cast<LPDEVMODEW>(std::malloc( nDevSize ));
+        assert(pNewDevMode); // Don't handle OOM conditions
         memcpy( pNewDevMode, pDevMode, nDevSize );
         pNewDevMode->dmFields |= DM_COPIES;
         pNewDevMode->dmCopies  = static_cast<short>(static_cast<sal_uInt16>(nCopies));


More information about the Libreoffice-commits mailing list