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:
Santiago Gimeno
2015-09-01 14:47:23 +02:00
parent 806a6b397c
commit b373413669
2 changed files with 3 additions and 3 deletions

View File

@@ -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);

View File

@@ -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);