Inist-CNRS/ghostscript-js

node core dumps if 2nd argument is not a function

mhirsch opened this issue · 1 comments

If the 2nd argument to gs.exec() is, for example, undefined, the node process segfaults. It seems like this should be handled more gracefully.

> gs.exec(['-sDEVICE=tiff24nc','-sOutputFile=test.tif','testPDF.pdf'])
undefined
> 

#
# Fatal error in , line 0
# Check failed: receiver.IsJSFunction().
#
#
#
#FailureMessage Object: 0x7fff54c0eff0
 1: 0x7f91dc74f199  [/lib64/libnode.so.83]
 2: 0x7f91dd41a03d V8_Fatal(char const*, ...) [/lib64/libnode.so.83]
 3: 0x7f91dcf9c278 v8::internal::JSReceiver::GetCreationContext() [/lib64/libnode.so.83]
 4: 0x7f91dcc49e09 v8::Object::CreationContext() [/lib64/libnode.so.83]
 5: 0x7f91dc622243 node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) [/lib64/libnode.so.83]
 6: 0x7f91de8fdaf9 Nan::Callback::Call(int, v8::Local<v8::Value>*) const [/home/mhirsch/test-gs-js/node_modules/ghostscript-js/build/Release/ghostscriptjs.node]
 7: 0x7f91de8fdbfa ghostscript::HandleOKCallback() [/home/mhirsch/test-gs-js/node_modules/ghostscript-js/build/Release/ghostscriptjs.node]
 8: 0x7f91de8fd573 Nan::AsyncExecuteComplete(uv_work_s*, int) [/home/mhirsch/test-gs-js/node_modules/ghostscript-js/build/Release/ghostscriptjs.node]
 9: 0x7f91dcb3a1fb  [/lib64/libnode.so.83]
10: 0x7f91dcb3defe  [/lib64/libnode.so.83]
11: 0x7f91dcb50b3c  [/lib64/libnode.so.83]
12: 0x7f91dcb3e7f4 uv_run [/lib64/libnode.so.83]
13: 0x7f91dc71e586 node::NodeMainInstance::Run() [/lib64/libnode.so.83]
14: 0x7f91dc695859 node::Start(int, char**) [/lib64/libnode.so.83]
15: 0x7f91db9fcb75 __libc_start_main [/lib64/libc.so.6]
16: 0x56526a15512e _start [node]
Illegal instruction (core dumped)

rmeja commented

Hello,
I just produced an update (v1.1.8) which fixes this issue. Tell me back if it's ok for you.