summaryrefslogtreecommitdiff
path: root/java/openjdk6/files/icedtea/security/7195917.patch
diff options
context:
space:
mode:
Diffstat (limited to 'java/openjdk6/files/icedtea/security/7195917.patch')
-rw-r--r--java/openjdk6/files/icedtea/security/7195917.patch88
1 files changed, 0 insertions, 88 deletions
diff --git a/java/openjdk6/files/icedtea/security/7195917.patch b/java/openjdk6/files/icedtea/security/7195917.patch
deleted file mode 100644
index 479e7fa78fa1..000000000000
--- a/java/openjdk6/files/icedtea/security/7195917.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-# HG changeset patch
-# User malenkov
-# Date 1348148080 -14400
-# Node ID 074f132d65c91231ca989e4c757207e1cf25a476
-# Parent 6a383aef225ab7bb99b723bbb29786e29747a4f0
-7195917: XMLDecoder parsing at close-time should be improved
-Reviewed-by: art, ahgross
-
-diff --git a/src/share/classes/java/beans/XMLDecoder.java b/src/share/classes/java/beans/XMLDecoder.java
---- jdk/src/share/classes/java/beans/XMLDecoder.java
-+++ jdk/src/share/classes/java/beans/XMLDecoder.java
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2000, 2012, 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
-@@ -32,6 +32,10 @@
- import java.lang.ref.Reference;
- import java.lang.ref.WeakReference;
-
-+import java.security.AccessControlContext;
-+import java.security.AccessController;
-+import java.security.PrivilegedAction;
-+
- import org.xml.sax.SAXException;
-
- import javax.xml.parsers.SAXParserFactory;
-@@ -66,6 +70,7 @@
- * @author Philip Milne
- */
- public class XMLDecoder {
-+ private final AccessControlContext acc = AccessController.getContext();
- private InputStream in;
- private Object owner;
- private ExceptionListener exceptionListener;
-@@ -248,25 +253,33 @@
- */
- private ObjectHandler getHandler() {
- if ( handler == null ) {
-- SAXParserFactory factory = SAXParserFactory.newInstance();
-- try {
-- SAXParser parser = factory.newSAXParser();
-- handler = new ObjectHandler( this, getClassLoader() );
-- parser.parse( in, handler );
-+ if ((this.acc == null) && (null != System.getSecurityManager())) {
-+ throw new SecurityException("AccessControlContext is not set");
- }
-- catch ( ParserConfigurationException e ) {
-- getExceptionListener().exceptionThrown( e );
-- }
-- catch ( SAXException se ) {
-- Exception e = se.getException();
-- if ( e == null ) {
-- e = se;
-+ handler = AccessController.doPrivileged(new PrivilegedAction<ObjectHandler>() {
-+ public ObjectHandler run() {
-+ ObjectHandler handler = new ObjectHandler(XMLDecoder.this, getClassLoader());
-+ SAXParserFactory factory = SAXParserFactory.newInstance();
-+ try {
-+ SAXParser parser = factory.newSAXParser();
-+ parser.parse( in, handler );
-+ }
-+ catch ( ParserConfigurationException e ) {
-+ getExceptionListener().exceptionThrown( e );
-+ }
-+ catch ( SAXException se ) {
-+ Exception e = se.getException();
-+ if ( e == null ) {
-+ e = se;
-+ }
-+ getExceptionListener().exceptionThrown( e );
-+ }
-+ catch ( IOException ioe ) {
-+ getExceptionListener().exceptionThrown( ioe );
-+ }
-+ return handler;
- }
-- getExceptionListener().exceptionThrown( e );
-- }
-- catch ( IOException ioe ) {
-- getExceptionListener().exceptionThrown( ioe );
-- }
-+ }, this.acc);
- }
- return handler;
- }