Skip to content
Closed
Prev Previous commit
Next Next commit
src: verify pointer before calling its method
The destructor InstanceMethodCallBaton() calls m_javaObject->Unref()
which aborts when m_javaObject is NULL.

Affects at least `npm test` from `node-jdbc` npm, which aborts in
test `testcreatetable`:

(abort) [0x26C7C640]
(__cxa_end_catch) [0x2E2CC414]
(InstanceMethodCallBaton::~InstanceMethodCallBaton()+0x140) [0x2E2CD2A4]
(Nan::AsyncWorker::Destroy()@AF61_58+0x28) [0x2E2CCE4C]
(Nan::AsyncWorker::Destroy()+0x18) [0x2E2C9F12]
(Nan::AsyncExecuteComplete(uv_work_s*)+0x4e) [0x27DB5430]
...
  • Loading branch information
gabylb committed Sep 30, 2020
commit 34bb02cdd3fa98aa54f773de32eda80edcd6b16c
5 changes: 4 additions & 1 deletion src/methodCallBaton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -236,5 +236,8 @@ InstanceMethodCallBaton::InstanceMethodCallBaton(
}

InstanceMethodCallBaton::~InstanceMethodCallBaton() {
m_javaObject->Unref();
if (m_javaObject) {
m_javaObject->Unref();
m_javaObject = NULL;
}
}