Mercurial > hg > openjdk > lambda > jdk
changeset 10243:5bde952bf23c
8016357: Update hotspot diagnostic class
Summary: Add security check to HotSpotDiagnostic.dumpHeap
Reviewed-by: fparain, sla, ahgross
author | sgabdura |
---|---|
date | Tue, 23 Jul 2013 09:30:58 +0400 |
parents | 3725e8a70ae9 |
children | 5bdc55e87cae |
files | make/java/management/mapfile-vers makefiles/mapfiles/libmanagement/mapfile-vers src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java src/share/classes/sun/management/HotSpotDiagnostic.java src/share/native/sun/management/HotSpotDiagnostic.c |
diffstat | 5 files changed, 19 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/make/java/management/mapfile-vers Mon Jul 22 19:41:07 2013 -0700 +++ b/make/java/management/mapfile-vers Tue Jul 23 09:30:58 2013 +0400 @@ -57,7 +57,7 @@ Java_sun_management_GcInfoBuilder_fillGcAttributeInfo; Java_sun_management_GcInfoBuilder_getLastGcInfo0; Java_sun_management_GcInfoBuilder_getNumGcExtAttributes; - Java_sun_management_HotSpotDiagnostic_dumpHeap; + Java_sun_management_HotSpotDiagnostic_dumpHeap0; Java_sun_management_HotspotThread_getInternalThreadCount; Java_sun_management_HotspotThread_getInternalThreadTimes0; Java_sun_management_MemoryImpl_getMemoryManagers0;
--- a/makefiles/mapfiles/libmanagement/mapfile-vers Mon Jul 22 19:41:07 2013 -0700 +++ b/makefiles/mapfiles/libmanagement/mapfile-vers Tue Jul 23 09:30:58 2013 +0400 @@ -57,7 +57,7 @@ Java_sun_management_GcInfoBuilder_fillGcAttributeInfo; Java_sun_management_GcInfoBuilder_getLastGcInfo0; Java_sun_management_GcInfoBuilder_getNumGcExtAttributes; - Java_sun_management_HotSpotDiagnostic_dumpHeap; + Java_sun_management_HotSpotDiagnostic_dumpHeap0; Java_sun_management_HotspotThread_getInternalThreadCount; Java_sun_management_HotspotThread_getInternalThreadTimes0; Java_sun_management_MemoryImpl_getMemoryManagers0;
--- a/src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java Mon Jul 22 19:41:07 2013 -0700 +++ b/src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java Tue Jul 23 09:30:58 2013 +0400 @@ -66,6 +66,11 @@ * cannot be created, opened, or written to. * @throws UnsupportedOperationException if this operation is not supported. * @throws NullPointerException if <tt>outputFile</tt> is <tt>null</tt>. + * @throws SecurityException + * If a security manager exists and its {@link + * java.lang.SecurityManager#checkWrite(java.lang.String)} + * method denies write access to the named file + * or the caller does not have ManagmentPermission("control"). */ public void dumpHeap(String outputFile, boolean live) throws java.io.IOException;
--- a/src/share/classes/sun/management/HotSpotDiagnostic.java Mon Jul 22 19:41:07 2013 -0700 +++ b/src/share/classes/sun/management/HotSpotDiagnostic.java Tue Jul 23 09:30:58 2013 +0400 @@ -40,7 +40,17 @@ public HotSpotDiagnostic() { } - public native void dumpHeap(String outputFile, boolean live) throws IOException; + public void dumpHeap(String outputFile, boolean live) throws IOException { + SecurityManager security = System.getSecurityManager(); + if (security != null) { + security.checkWrite(outputFile); + Util.checkControlAccess(); + } + + dumpHeap0(outputFile, live); + } + + private native void dumpHeap0(String outputFile, boolean live) throws IOException; public List<VMOption> getDiagnosticOptions() { List<Flag> allFlags = Flag.getAllFlags();
--- a/src/share/native/sun/management/HotSpotDiagnostic.c Mon Jul 22 19:41:07 2013 -0700 +++ b/src/share/native/sun/management/HotSpotDiagnostic.c Tue Jul 23 09:30:58 2013 +0400 @@ -29,7 +29,7 @@ #include "sun_management_HotSpotDiagnostic.h" JNIEXPORT void JNICALL -Java_sun_management_HotSpotDiagnostic_dumpHeap +Java_sun_management_HotSpotDiagnostic_dumpHeap0 (JNIEnv *env, jobject dummy, jstring outputfile, jboolean live) { jmm_interface->DumpHeap0(env, outputfile, live);