< prev index next >

src/java.desktop/windows/native/libawt/windows/WPrinterJob.cpp

Print this page
rev 50364 : 8204211: windows : handle potential C++ exception in GDIRenderer

@@ -871,11 +871,17 @@
       SAVE_CONTROLWORD
 
       int numSizes = ::DeviceCapabilities(printerName, printerPort,
                                           DC_PAPERS, NULL, NULL);
       if (numSizes > 0) {
-          LPTSTR papers = (LPTSTR)SAFE_SIZE_ARRAY_ALLOC(safe_Malloc, numSizes, sizeof(WORD));
+          LPTSTR papers;
+          try {
+              papers = (LPTSTR)SAFE_SIZE_ARRAY_ALLOC(safe_Malloc, numSizes, sizeof(WORD));
+          } catch (const std::bad_alloc&) {
+              papers = NULL;
+          }
+
           if (papers != NULL &&
               ::DeviceCapabilities(printerName, printerPort,
                                    DC_PAPERS, papers, NULL) != -1) {
               int present = 0;
               for (int i=0;i<numSizes;i++) {
< prev index next >