diff options
| author | peshovec <jlesev@gmail.com> | 2012-03-12 14:22:01 +0200 |
|---|---|---|
| committer | peshovec <jlesev@gmail.com> | 2012-03-14 10:09:16 +0200 |
| commit | 2b48c9410a291e8288d1a2b585c7e7a2ab203c67 (patch) | |
| tree | 18493d1951dd501a1056457aa2e5b3341e02053e | |
| parent | 55ac5b0a908b85c050f34dc603f62dd4b1fc4e9f (diff) | |
| download | android_dalvik-2b48c9410a291e8288d1a2b585c7e7a2ab203c67.tar.gz android_dalvik-2b48c9410a291e8288d1a2b585c7e7a2ab203c67.tar.bz2 android_dalvik-2b48c9410a291e8288d1a2b585c7e7a2ab203c67.zip | |
Undecoded jobject leaking in through attachThread
picked from
https://android-review.googlesource.com/#/c/23058/
| -rw-r--r-- | vm/Jni.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -566,6 +566,8 @@ static inline ReferenceTable* getLocalRefTable(JNIEnv* env) * reference may be local, global, or weak-global. * * If "jobj" is NULL or an invalid indirect reference, this returns NULL. + * + * Note "env" may be NULL when decoding global references. */ Object* dvmDecodeIndirectRef(JNIEnv* env, jobject jobj) { @@ -3856,7 +3858,7 @@ static jint attachThread(JavaVM* vm, JNIEnv** p_env, void* thr_args, argsCopy.version = args->version; argsCopy.name = args->name; if (args->group != NULL) - argsCopy.group = args->group; + argsCopy.group = dvmDecodeIndirectRef(NULL, args->group); else argsCopy.group = dvmGetMainThreadGroup(); } |
