8204211: windows : handle potential C++ exception in GDIRenderer
Reviewed-by: clanger, prr, serb
This commit is contained in:
parent
49445ed295
commit
be8554b697
make/lib
src/java.desktop/windows/native/libawt
@ -224,7 +224,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBAWT, \
|
||||
format-nonliteral parentheses, \
|
||||
DISABLED_WARNINGS_clang := logical-op-parentheses extern-initializer, \
|
||||
DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE, \
|
||||
DISABLED_WARNINGS_microsoft := 4297 4244 4267 4996, \
|
||||
DISABLED_WARNINGS_microsoft := 4244 4267 4996, \
|
||||
ASFLAGS := $(LIBAWT_ASFLAGS), \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_macosx := -L$(INSTALL_LIBRARIES_HERE), \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -85,7 +85,11 @@ static POINT *TransformPoly(jint *xpoints, jint *ypoints,
|
||||
*pNpoints = outpoints;
|
||||
}
|
||||
if (outpoints > POLYTEMPSIZE) {
|
||||
pPoints = (POINT *) SAFE_SIZE_ARRAY_ALLOC(safe_Malloc, sizeof(POINT), outpoints);
|
||||
try {
|
||||
pPoints = (POINT *) SAFE_SIZE_ARRAY_ALLOC(safe_Malloc, sizeof(POINT), outpoints);
|
||||
} catch (const std::bad_alloc&) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
BOOL isempty = fixend;
|
||||
for (int i = 0; i < npoints; i++) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -873,7 +873,13 @@ Java_sun_print_Win32PrintService_getDefaultSettings(JNIEnv *env,
|
||||
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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user