Browse Source

bindings: close after reading module struct

Do not let the module struct to be deallocated by `uv_dlclose`
before reading data from it.

PR-URL: https://github.com/nodejs/node/pull/2792
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Yosuke Furukawa <yosuke.furukawa@gmail.com>
v4.x
Fedor Indutny 9 years ago
committed by Rod Vagg
parent
commit
9683e5df51
  1. 5
      src/node.cc

5
src/node.cc

@ -2087,12 +2087,15 @@ void DLOpen(const FunctionCallbackInfo<Value>& args) {
return;
}
if (mp->nm_version != NODE_MODULE_VERSION) {
uv_dlclose(&lib);
char errmsg[1024];
snprintf(errmsg,
sizeof(errmsg),
"Module version mismatch. Expected %d, got %d.",
NODE_MODULE_VERSION, mp->nm_version);
// NOTE: `mp` is allocated inside of the shared library's memory, calling
// `uv_dlclose` will deallocate it
uv_dlclose(&lib);
env->ThrowError(errmsg);
return;
}

Loading…
Cancel
Save