Skip to content
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/node_binding.cc
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,9 @@ void DLOpen(const FunctionCallbackInfo<Value>& args) {
mp = dlib->GetSavedModuleFromGlobalHandleMap();
if (mp == nullptr || mp->nm_context_register_func == nullptr) {
dlib->Close();
env->ThrowError("Module did not self-register.");
char errmsg[1024];
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could this be PATH_MAX?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PATH_MAX + strlen("Module did not self-register.") + 1 i suppose?

given the code immediately below that also uses 1024 and includes *filename, I figured best to go for consistency :)

snprintf(errmsg, sizeof(errmsg), "Module did not self-register: '%s'.", *filename);
env->ThrowError(errmsg);
return false;
}
}
Expand Down
2 changes: 1 addition & 1 deletion test/addons/dlopen-ping-pong/test-worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ require(bindingPath);
new Worker(`require(${JSON.stringify(bindingPath)})`, { eval: true })
.on('error', common.mustCall((err) => {
assert.strictEqual(err.constructor, Error);
assert.strictEqual(err.message, 'Module did not self-register.');
assert.strictEqual(err.message, `Module did not self-register: '${bindingPath}'.`);
}));
2 changes: 1 addition & 1 deletion test/addons/dlopen-ping-pong/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ assert.strictEqual(module.exports.ping(), 'pong');
// Check that after the addon is loaded with
// process.dlopen() a require() call fails.
console.log('require:', `./build/${common.buildType}/binding`);
const re = /^Error: Module did not self-register\.$/;
const re = /^Error: Module did not self-register: '.*\/binding.node'\.$/;
assert.throws(() => require(`./build/${common.buildType}/binding`), re);
2 changes: 1 addition & 1 deletion test/addons/not-a-binding/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
const common = require('../../common');
const assert = require('assert');

const re = /^Error: Module did not self-register\.$/;
const re = /^Error: Module did not self-register: '.*\/binding.node'\.$/;
assert.throws(() => require(`./build/${common.buildType}/binding`), re);