Commit e7032462 by Michael Koch Committed by Michael Koch

re PR libgcj/17784 (Thread.interrupt doesn't do security checks)

2005-01-13  Michael Koch  <konqueror@gmx.de>

	PR libgcj/17784
	* java/lang/Thread.java
	(Thread): Call checkAccess().
	(stop): Fixed argument name to match javadoc.
	* java/lang/natThread.cc
	(interrupt): Call checkAccess().
	(stop): Likewise.

From-SVN: r93611
parent 43a5ef69
2005-01-13 Michael Koch <konqueror@gmx.de>
PR libgcj/17784
* java/lang/Thread.java
(Thread): Call checkAccess().
(stop): Fixed argument name to match javadoc.
* java/lang/natThread.cc
(interrupt): Call checkAccess().
(stop): Likewise.
2005-01-11 Michael Koch <konqueror@gmx.de> 2005-01-11 Michael Koch <konqueror@gmx.de>
PR libgcj/13972 PR libgcj/13972
......
/* Thread -- an independent thread of executable code /* Thread -- an independent thread of executable code
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation Free Software Foundation
This file is part of GNU Classpath. This file is part of GNU Classpath.
...@@ -36,6 +36,7 @@ this exception to your version of the library, but you are not ...@@ -36,6 +36,7 @@ this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */ exception statement from your version. */
package java.lang; package java.lang;
import gnu.gcj.RawData; import gnu.gcj.RawData;
...@@ -321,6 +322,9 @@ public class Thread implements Runnable ...@@ -321,6 +322,9 @@ public class Thread implements Runnable
private Thread (Thread current, ThreadGroup g, Runnable r, String n) private Thread (Thread current, ThreadGroup g, Runnable r, String n)
{ {
// Make sure the current thread may create a new thread.
checkAccess();
// The Class Libraries book says ``threadName cannot be null''. I // The Class Libraries book says ``threadName cannot be null''. I
// take this to mean NullPointerException. // take this to mean NullPointerException.
if (n == null) if (n == null)
...@@ -862,7 +866,7 @@ public class Thread implements Runnable ...@@ -862,7 +866,7 @@ public class Thread implements Runnable
* @see SecurityManager#checkPermission(Permission) * @see SecurityManager#checkPermission(Permission)
* @deprecated unsafe operation, try not to use * @deprecated unsafe operation, try not to use
*/ */
public final native void stop(Throwable e); public final native void stop(Throwable t);
/** /**
* Suspend this Thread. It will not come back, ever, unless it is resumed. * Suspend this Thread. It will not come back, ever, unless it is resumed.
......
...@@ -112,6 +112,7 @@ java::lang::Thread::holdsLock (jobject obj) ...@@ -112,6 +112,7 @@ java::lang::Thread::holdsLock (jobject obj)
void void
java::lang::Thread::interrupt (void) java::lang::Thread::interrupt (void)
{ {
checkAccess ();
natThread *nt = (natThread *) data; natThread *nt = (natThread *) data;
_Jv_ThreadInterrupt (nt->thread); _Jv_ThreadInterrupt (nt->thread);
} }
...@@ -321,6 +322,7 @@ java::lang::Thread::start (void) ...@@ -321,6 +322,7 @@ java::lang::Thread::start (void)
void void
java::lang::Thread::stop (java::lang::Throwable *) java::lang::Thread::stop (java::lang::Throwable *)
{ {
checkAccess ();
throw new UnsupportedOperationException throw new UnsupportedOperationException
(JvNewStringLatin1 ("Thread.stop unimplemented")); (JvNewStringLatin1 ("Thread.stop unimplemented"));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment