miyako/4d-plugin-curl-v3

cURL_FTP_Send crash

mpverwoerd opened this issue · 2 comments

Hi Keisuke,

I upgraded our 4D application from curl 2 to curl 3 and run into a problem, when using the command cURL_FTP_Send.
It works fine in interpreted mode, but the 4d client crash in compiled mode, without any error.

4D Version 19.4 build 282375
Curl version 4.4.12
OS Windows Client/Server

This is how i use it:
C_OBJECT($vo_options; $vo_result)
$vo_result:=cURL_FTP_Send($vo_options)

$vo_options:
{"DEFAULT_PROTOCOL":"ftp","USERNAME":"ams01-254-web01-ftp","PASSWORD":"z}B))fvtq>wg%4CR2","USE_SSL":"USESSL_TRY","SSL_VERIFYPEER":"0","URL":"ftp://apps.inventive-online.nl/test2/alive.txt","READDATA":"C:\\inventive\\alive\\alive.txt","FTP_CREATE_MISSING_DIRS":1}

Runtime error on Windows machine:
Faulting application name: Inventive Client.exe, version: 19.0.4.0, time stamp: 0x631a77d8
Faulting module name: VCRUNTIME140.dll, version: 14.28.29325.2, time stamp: 0x5f6d82df
Exception code: 0xc0000005
Fault offset: 0x00000000000012de
Faulting process id: 0x104
Faulting application start time: 0x01d8ef59be682c32
Faulting application path: C:\Program Files\Inventive Systems\Inventive Clients\V19.4 Client Acceptatie\Inventive Client.exe
Faulting module path: C:\Program Files\Inventive Systems\Inventive Clients\V19.4 Client Acceptatie\VCRUNTIME140.dll
Report Id: 0b032ed9-3c84-4b44-b809-8209cfd7e3d7
Faulting package full name:
Faulting package-relative application ID:

Can you see what i am doing wrong?

Regards
Martijn

normally when a plugin crashes in compiled mode only, something is wrong with the parameter or return value.

the command syntax is

cURL_FTP_Send(&J;&O;&T):J

you should probably declare and pass an empty BLOB in $2 instead of omitting it completely.

https://github.com/miyako/4d-plugin-curl-v3/blob/main/curl/manifest.json

everybody ignores but the compiler warns against missing plugin parameters.

Thank you for your quick response, much appreciated!
I completely overlooked the second parameter, wasnt aware that it is mandatory, thanks for pointing it out to me..
Regards
Martijn