diff options
author | Sebastien Hertz <shertz@google.com> | 2013-11-28 18:53:35 +0100 |
---|---|---|
committer | Sebastien Hertz <shertz@google.com> | 2013-12-12 09:29:04 +0100 |
commit | 0630ab5239a7d7be24dedbc3f66c822332446fc3 (patch) | |
tree | 3043efa35ae177db590340138b52772bf71642dd | |
parent | 315ab6c077c4db2031f1ffa40b78722d8269dc9b (diff) | |
download | art-0630ab5239a7d7be24dedbc3f66c822332446fc3.zip art-0630ab5239a7d7be24dedbc3f66c822332446fc3.tar.gz art-0630ab5239a7d7be24dedbc3f66c822332446fc3.tar.bz2 |
Fix null argument handling during invoke from JDWP.
Fix a crash when passing null argument to a JDWP invoke.
Change-Id: I167f93f3a411f0de8458db3ba5bed3169d557ee9
-rw-r--r-- | runtime/debugger.cc | 2 | ||||
-rw-r--r-- | runtime/jdwp/object_registry.cc | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/runtime/debugger.cc b/runtime/debugger.cc index 52a2141..2b82167 100644 --- a/runtime/debugger.cc +++ b/runtime/debugger.cc @@ -2712,7 +2712,7 @@ JDWP::JdwpError Dbg::InvokeMethod(JDWP::ObjectId thread_id, JDWP::ObjectId objec if (argument == ObjectRegistry::kInvalidObject) { return JDWP::ERR_INVALID_OBJECT; } - if (!argument->InstanceOf(parameter_type)) { + if (argument != NULL && !argument->InstanceOf(parameter_type)) { return JDWP::ERR_ILLEGAL_ARGUMENT; } diff --git a/runtime/jdwp/object_registry.cc b/runtime/jdwp/object_registry.cc index be2219c..7408e92 100644 --- a/runtime/jdwp/object_registry.cc +++ b/runtime/jdwp/object_registry.cc @@ -118,6 +118,9 @@ mirror::Object* ObjectRegistry::InternalGet(JDWP::ObjectId id) { } jobject ObjectRegistry::GetJObject(JDWP::ObjectId id) { + if (id == 0) { + return NULL; + } Thread* self = Thread::Current(); MutexLock mu(self, lock_); id_iterator it = id_to_entry_.find(id); |