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] = {
|
||||
Nan::Undefined(), // argument
|
||||
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);
|
||||
@@ -573,7 +573,7 @@ void CardReader::AfterTransmit(uv_work_t* req, int status) {
|
||||
const unsigned argc = 2;
|
||||
Local<Value> argv[argc] = {
|
||||
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);
|
||||
|
||||
@@ -133,7 +133,7 @@ void PCSCLite::HandleReaderStatusChange(uv_async_t *handle, int status) {
|
||||
const unsigned argc = 2;
|
||||
Local<Value> argv[argc] = {
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user