summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Hertz <shertz@google.com>2013-11-28 18:53:35 +0100
committerSebastien Hertz <shertz@google.com>2013-12-12 09:29:04 +0100
commit0630ab5239a7d7be24dedbc3f66c822332446fc3 (patch)
tree3043efa35ae177db590340138b52772bf71642dd
parent315ab6c077c4db2031f1ffa40b78722d8269dc9b (diff)
downloadart-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.cc2
-rw-r--r--runtime/jdwp/object_registry.cc3
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);