8208754: The fix for JDK-8194534 needs updates

Reviewed-by: alanb, igerasim, rhalade, mullan
This commit is contained in:
Weijun Wang 2018-08-08 08:05:43 +08:00
parent 1c4396ebae
commit 61d19ee892
5 changed files with 13 additions and 3 deletions

View file

@ -1025,7 +1025,7 @@ class JarFile extends ZipFile {
}
}
private synchronized void ensureInitialization() {
synchronized void ensureInitialization() {
try {
maybeInstantiateVerifier();
} catch (IOException e) {

View file

@ -65,4 +65,7 @@ class JavaUtilJarAccessImpl implements JavaUtilJarAccess {
return man.getTrustedAttributes(name);
}
public void ensureInitialization(JarFile jar) {
jar.ensureInitialization();
}
}

View file

@ -169,6 +169,10 @@ public class Manifest implements Cloneable {
* does not exist in SF files of all signers).
*/
Attributes getTrustedAttributes(String name) {
// Note: Before the verification of MANIFEST.MF/.SF/.RSA files is done,
// jv.isTrustedManifestEntry() isn't able to detect MANIFEST.MF change.
// Users of this method should call SharedSecrets.javaUtilJarAccess()
// .ensureInitialization() first.
Attributes result = getAttributes(name);
if (result != null && jv != null && ! jv.isTrustedManifestEntry(name)) {
throw new SecurityException("Untrusted manifest entry: " + name);