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
This commit is contained in:
Michael Koch 2005-01-13 20:26:38 +00:00 committed by Michael Koch
parent 43a5ef693f
commit e70324625f
3 changed files with 18 additions and 2 deletions

View File

@ -1,3 +1,13 @@
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>
PR libgcj/13972

View File

@ -1,5 +1,5 @@
/* 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
This file is part of GNU Classpath.
@ -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
exception statement from your version. */
package java.lang;
import gnu.gcj.RawData;
@ -321,6 +322,9 @@ public class Thread implements Runnable
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
// take this to mean NullPointerException.
if (n == null)
@ -862,7 +866,7 @@ public class Thread implements Runnable
* @see SecurityManager#checkPermission(Permission)
* @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.

View File

@ -112,6 +112,7 @@ java::lang::Thread::holdsLock (jobject obj)
void
java::lang::Thread::interrupt (void)
{
checkAccess ();
natThread *nt = (natThread *) data;
_Jv_ThreadInterrupt (nt->thread);
}
@ -321,6 +322,7 @@ java::lang::Thread::start (void)
void
java::lang::Thread::stop (java::lang::Throwable *)
{
checkAccess ();
throw new UnsupportedOperationException
(JvNewStringLatin1 ("Thread.stop unimplemented"));
}