src: fix double free crashes
- After upgrading to nan2 the buffers returned in some of the functions were being released because of Nan:NewBuffer. See: https://github.com/nodejs/nan/blob/master/doc/buffers.md#api_nan_new_buffer
This commit is contained in:
@@ -344,7 +344,7 @@ void CardReader::HandleReaderStatusChange(uv_async_t *handle, int status) {
|
|||||||
Local<Value> argv[argc] = {
|
Local<Value> argv[argc] = {
|
||||||
Nan::Undefined(), // argument
|
Nan::Undefined(), // argument
|
||||||
Nan::New<Number>(ar->status),
|
Nan::New<Number>(ar->status),
|
||||||
Nan::NewBuffer(reinterpret_cast<char*>(ar->atr), ar->atrlen).ToLocalChecked()
|
Nan::CopyBuffer(reinterpret_cast<char*>(ar->atr), ar->atrlen).ToLocalChecked()
|
||||||
};
|
};
|
||||||
|
|
||||||
Nan::Callback(Nan::New(async_baton->callback)).Call(argc, argv);
|
Nan::Callback(Nan::New(async_baton->callback)).Call(argc, argv);
|
||||||
@@ -573,7 +573,7 @@ void CardReader::AfterTransmit(uv_work_t* req, int status) {
|
|||||||
const unsigned argc = 2;
|
const unsigned argc = 2;
|
||||||
Local<Value> argv[argc] = {
|
Local<Value> argv[argc] = {
|
||||||
Nan::Null(),
|
Nan::Null(),
|
||||||
Nan::NewBuffer(reinterpret_cast<char*>(tr->data), tr->len).ToLocalChecked()
|
Nan::CopyBuffer(reinterpret_cast<char*>(tr->data), tr->len).ToLocalChecked()
|
||||||
};
|
};
|
||||||
|
|
||||||
Nan::Callback(Nan::New(baton->callback)).Call(argc, argv);
|
Nan::Callback(Nan::New(baton->callback)).Call(argc, argv);
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ void PCSCLite::HandleReaderStatusChange(uv_async_t *handle, int status) {
|
|||||||
const unsigned argc = 2;
|
const unsigned argc = 2;
|
||||||
Local<Value> argv[argc] = {
|
Local<Value> argv[argc] = {
|
||||||
Nan::Undefined(), // argument
|
Nan::Undefined(), // argument
|
||||||
Nan::NewBuffer(ar->readers_name, ar->readers_name_length).ToLocalChecked()
|
Nan::CopyBuffer(ar->readers_name, ar->readers_name_length).ToLocalChecked()
|
||||||
};
|
};
|
||||||
|
|
||||||
Nan::Callback(Nan::New(async_baton->callback)).Call(argc, argv);
|
Nan::Callback(Nan::New(async_baton->callback)).Call(argc, argv);
|
||||||
|
|||||||
Reference in New Issue
Block a user