!585 The fast serialization function of sun.rmi.transport.ConnectionOutputStream is disabled by default
From: @zhangyunbo7 Reviewed-by: @kuenking111 Signed-off-by: @kuenking111
This commit is contained in:
commit
18e9a4ae4a
88
The-fast-serialization-function-of-sun.rmi.transport.patch
Normal file
88
The-fast-serialization-function-of-sun.rmi.transport.patch
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
Subject: [PATCH][Huawei] The fast serialization function of
|
||||||
|
sun.rmi.transport.ConnectionOutputStream is disabled by default
|
||||||
|
|
||||||
|
---
|
||||||
|
.../classes/java/io/ObjectOutputStream.java | 23 ++++++++++++++++---
|
||||||
|
.../sun/rmi/server/MarshalOutputStream.java | 10 ++++++++
|
||||||
|
2 files changed, 30 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/jdk/src/share/classes/java/io/ObjectOutputStream.java b/jdk/src/share/classes/java/io/ObjectOutputStream.java
|
||||||
|
index 328f47589..78dc3c5b2 100644
|
||||||
|
--- a/jdk/src/share/classes/java/io/ObjectOutputStream.java
|
||||||
|
+++ b/jdk/src/share/classes/java/io/ObjectOutputStream.java
|
||||||
|
@@ -240,7 +240,7 @@ public class ObjectOutputStream
|
||||||
|
* Value of "UseFastSerializer" property. The fastSerializer is turned
|
||||||
|
* on when it is true.
|
||||||
|
*/
|
||||||
|
- private final boolean useFastSerializer = UNSAFE.getUseFastSerializer();
|
||||||
|
+ private boolean useFastSerializer = UNSAFE.getUseFastSerializer();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* value of "printFastSerializer" property,
|
||||||
|
@@ -254,7 +254,22 @@ public class ObjectOutputStream
|
||||||
|
* Magic number that is written to the stream header when using fastserilizer.
|
||||||
|
*/
|
||||||
|
private static final short STREAM_MAGIC_FAST = (short)0xdeca;
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * The default value is true. If you want to disable the fast serialization function, please set it to false.
|
||||||
|
+ */
|
||||||
|
+ protected boolean enableFastSerializerClass(){
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
+ /**
|
||||||
|
+ * Disable fast serialization functionality.
|
||||||
|
+ */
|
||||||
|
+ private void disableFastSerializerStatusByClass() {
|
||||||
|
+ if ( this.useFastSerializer && !enableFastSerializerClass()){
|
||||||
|
+ this.useFastSerializer = false;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
/**
|
||||||
|
* Creates an ObjectOutputStream that writes to the specified OutputStream.
|
||||||
|
* This constructor writes the serialization stream header to the
|
||||||
|
@@ -279,7 +294,8 @@ public class ObjectOutputStream
|
||||||
|
* @see ObjectInputStream#ObjectInputStream(InputStream)
|
||||||
|
*/
|
||||||
|
public ObjectOutputStream(OutputStream out) throws IOException {
|
||||||
|
- verifySubclass();
|
||||||
|
+ disableFastSerializerStatusByClass();
|
||||||
|
+ verifySubclass();
|
||||||
|
bout = new BlockDataOutputStream(out);
|
||||||
|
handles = new HandleTable(10, (float) 3.00);
|
||||||
|
subs = new ReplaceTable(10, (float) 3.00);
|
||||||
|
@@ -311,7 +327,8 @@ public class ObjectOutputStream
|
||||||
|
* @see java.io.SerializablePermission
|
||||||
|
*/
|
||||||
|
protected ObjectOutputStream() throws IOException, SecurityException {
|
||||||
|
- SecurityManager sm = System.getSecurityManager();
|
||||||
|
+ disableFastSerializerStatusByClass();
|
||||||
|
+ SecurityManager sm = System.getSecurityManager();
|
||||||
|
if (sm != null) {
|
||||||
|
sm.checkPermission(SUBCLASS_IMPLEMENTATION_PERMISSION);
|
||||||
|
}
|
||||||
|
diff --git a/jdk/src/share/classes/sun/rmi/server/MarshalOutputStream.java b/jdk/src/share/classes/sun/rmi/server/MarshalOutputStream.java
|
||||||
|
index 699f11072..e113441f8 100644
|
||||||
|
--- a/jdk/src/share/classes/sun/rmi/server/MarshalOutputStream.java
|
||||||
|
+++ b/jdk/src/share/classes/sun/rmi/server/MarshalOutputStream.java
|
||||||
|
@@ -48,6 +48,16 @@ import sun.rmi.transport.Target;
|
||||||
|
*/
|
||||||
|
public class MarshalOutputStream extends ObjectOutputStream
|
||||||
|
{
|
||||||
|
+ /**
|
||||||
|
+ * value of "enableRMIFastSerializerClass" property
|
||||||
|
+ */
|
||||||
|
+ private static final boolean enableRMIFastSerializerClass = java.security.AccessController.doPrivileged( new sun.security.action.GetBooleanAction( "enableRMIFastSerializerClass")).booleanValue();
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ protected boolean enableFastSerializerClass() {
|
||||||
|
+ return this.enableRMIFastSerializerClass;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* Creates a marshal output stream with protocol version 1.
|
||||||
|
*/
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
||||||
@ -943,7 +943,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{r
|
|||||||
|
|
||||||
Name: java-%{javaver}-%{origin}
|
Name: java-%{javaver}-%{origin}
|
||||||
Version: %{javaver}.%{updatever}.%{buildver}
|
Version: %{javaver}.%{updatever}.%{buildver}
|
||||||
Release: 0
|
Release: 1
|
||||||
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
|
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
|
||||||
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
|
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
|
||||||
# also included the epoch in their virtual provides. This created a
|
# also included the epoch in their virtual provides. This created a
|
||||||
@ -1340,6 +1340,7 @@ Patch439: Backport-8151845-Comment-in-globals.hpp-for-MetaspaceSize-is-.patch
|
|||||||
Patch440: Backport-8210706-G1-may-deadlock-when-starting-a-concurrent-c.patch
|
Patch440: Backport-8210706-G1-may-deadlock-when-starting-a-concurrent-c.patch
|
||||||
Patch441: Backport-8318889-Backport-Important-Fixed-Issues-in-Later-Ver.patch
|
Patch441: Backport-8318889-Backport-Important-Fixed-Issues-in-Later-Ver.patch
|
||||||
Patch442: Huawei-Keep-objects-when-remove-unshareable-info.patch
|
Patch442: Huawei-Keep-objects-when-remove-unshareable-info.patch
|
||||||
|
Patch443: The-fast-serialization-function-of-sun.rmi.transport.patch
|
||||||
#############################################
|
#############################################
|
||||||
#
|
#
|
||||||
# Upstreamable patches
|
# Upstreamable patches
|
||||||
@ -1995,6 +1996,7 @@ pushd %{top_level_dir_name}
|
|||||||
%patch440 -p1
|
%patch440 -p1
|
||||||
%patch441 -p1
|
%patch441 -p1
|
||||||
%patch442 -p1
|
%patch442 -p1
|
||||||
|
%patch443 -p1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%ifarch loongarch64
|
%ifarch loongarch64
|
||||||
@ -2654,6 +2656,9 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Tue 26 2024 benshuai5D <zhangyunbo7@huawei.com> -1:1.8.0.422-b05.1
|
||||||
|
- Add The-fast-serialization-function-of-sun.rmi.transport.patch
|
||||||
|
|
||||||
* Thu Tue 16 2024 Autistic_boyya <wangzhongyi7@huawei.com> -1:1.8.0.422-b05.rolling
|
* Thu Tue 16 2024 Autistic_boyya <wangzhongyi7@huawei.com> -1:1.8.0.422-b05.rolling
|
||||||
- modified 8014628-Support-AES-Encryption-with-HMAC-SHA2-for-Ke.patch
|
- modified 8014628-Support-AES-Encryption-with-HMAC-SHA2-for-Ke.patch
|
||||||
- modified 8136577_Make_AbortVMOnException_available_in_product_builds.patch
|
- modified 8136577_Make_AbortVMOnException_available_in_product_builds.patch
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user