有个第三方c模块提供了解密功能,把传入的加密字符串输出解密结果和加密时间,以下是调用方法:
local ffi = require("ffi")
ffi.cdef[[
int decrypt(char *source,char* dest,long* createtime);
]]
local nlib = ffi.load("libdecrypt.so")
local function decrypt(source)
local str=ffi.cast("char *",source)
local dest=ffi.new("char[?]",300)
local createtime = ffi_new("long[1]",20)
local validate = nlib.decrypt(str,dest,createtime)
return validate,ffi.string(dest)
end
这种调用有没有问题,实际生成环境测试过程中经常遇到worker core dump,这个第三方模块使用jni调用的时候是没有问题的,
由于不知道dest的长度,设置了一个很大值确保不会超过,但实际测试过程中发现,dest的长度不论多少都可以,求大神们指导下