Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2197125 | 7 | Vladimir Kozlov | P4 | Closed | Fixed | b109 |
JDK-2197867 | 6u23 | Vladimir Kozlov | P4 | Resolved | Fixed | b01 |
JDK-2199767 | 6u22m | Vladimir Kozlov | P4 | Resolved | Fixed | b01 |
JDK-2197573 | 6u21p | Vladimir Kozlov | P4 | Resolved | Fixed | b03 |
Z flag value will not be set by 'repne' if RCX == 0 since 'repne' does not change flags.
Setting Z = 1 before repne_scanl() in check_klass_subtype_slow_path():
// pointer were to sneak in here. Note that we have already loaded the
// Klass::super_check_offset from the super_klass in the fast path,
// so if there is a null in that register, we are already in the afterlife.
+ push(rax);
+ xorq(rax,rax); // Set Z = 1
+ pop(rax);
repne_scanl();
will cause next exception:
% java -Xmx128M -jar GCBasher.jar -time:300
Exception in thread "main" java.lang.IncompatibleClassChangeError
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:153)
at java.lang.StringCoding.decode(StringCoding.java:193)
at java.lang.String.<init>(String.java:452)
at java.util.jar.Attributes.read(Attributes.java:418)
at java.util.jar.Manifest.read(Manifest.java:199)
at java.util.jar.Manifest.<init>(Manifest.java:69)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:177)
at java.util.jar.JarFile.getManifest(JarFile.java:163)
j
Setting Z = 1 before repne_scanl() in check_klass_subtype_slow_path():
// pointer were to sneak in here. Note that we have already loaded the
// Klass::super_check_offset from the super_klass in the fast path,
// so if there is a null in that register, we are already in the afterlife.
+ push(rax);
+ xorq(rax,rax); // Set Z = 1
+ pop(rax);
repne_scanl();
will cause next exception:
% java -Xmx128M -jar GCBasher.jar -time:300
Exception in thread "main" java.lang.IncompatibleClassChangeError
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:153)
at java.lang.StringCoding.decode(StringCoding.java:193)
at java.lang.String.<init>(String.java:452)
at java.util.jar.Attributes.read(Attributes.java:418)
at java.util.jar.Manifest.read(Manifest.java:199)
at java.util.jar.Manifest.<init>(Manifest.java:69)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:177)
at java.util.jar.JarFile.getManifest(JarFile.java:163)
j
- backported by
-
JDK-2197573 Missing zero length check before repne scas in check_klass_subtype_slow_path()
- Resolved
-
JDK-2197867 Missing zero length check before repne scas in check_klass_subtype_slow_path()
- Resolved
-
JDK-2199767 Missing zero length check before repne scas in check_klass_subtype_slow_path()
- Resolved
-
JDK-2197125 Missing zero length check before repne scas in check_klass_subtype_slow_path()
- Closed