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:
parent
43a5ef693f
commit
e70324625f
|
@ -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>
|
2005-01-11 Michael Koch <konqueror@gmx.de>
|
||||||
|
|
||||||
PR libgcj/13972
|
PR libgcj/13972
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* 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
|
||||||
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
|
||||||
|
|
||||||
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
|
||||||
* @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)
|
||||||
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)
|
||||||
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"));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue