@@ -19,6 +19,7 @@ local get_size_ptr = base.get_size_ptr
1919local FFI_DECLINED = base .FFI_DECLINED
2020local FFI_OK = base .FFI_OK
2121local bor = bit .bor
22+ local ERR_BUF_SIZE = 256
2223
2324
2425ffi .cdef [[
@@ -66,11 +67,11 @@ void *ngx_http_lua_ffi_ssl_ctx_init(unsigned int protocols, char **err);
6667
6768void ngx_http_lua_ffi_ssl_ctx_free (void * cdata );
6869
69- int ngx_http_lua_ffi_ssl_ctx_set_priv_key (void * cdata_ctx ,
70- void * cdata_key , unsigned char ** err_buf , size_t err_buf_len );
70+ int ngx_http_lua_ffi_ssl_ctx_set_priv_key (void * cdata_ctx , void * cdata_key ,
71+ unsigned char * ssl_err_buf , size_t * ssl_err_buf_len );
7172
72- int ngx_http_lua_ffi_ssl_ctx_set_cert (void * cdata_ctx ,
73- void * cdata_cert , unsigned char ** err_buf , size_t err_buf_len );
73+ int ngx_http_lua_ffi_ssl_ctx_set_cert (void * cdata_ctx , void * cdata_cert ,
74+ unsigned char * ssl_err_buf , size_t * ssl_err_buf_len );
7475
7576]]
7677
@@ -299,24 +300,26 @@ function _M.create_ctx(options)
299300
300301 ctx = ffi_gc (ctx , C .ngx_http_lua_ffi_ssl_ctx_free )
301302
302- local size = get_string_buf_size ( )
303- local buf = get_string_buf ( size )
304- err_buf [0 ] = buf
303+ local err_buf = get_string_buf ( ERR_BUF_SIZE )
304+ local err_buf_len = get_size_ptr ( )
305+ err_buf_len [0 ] = ERR_BUF_SIZE
305306
306307 if options .cert ~= nil then
307308 local rc = C .ngx_http_lua_ffi_ssl_ctx_set_cert (ctx , options .cert ,
308- err_buf , size )
309+ err_buf ,
310+ err_buf_len )
309311 if rc ~= FFI_OK then
310- return nil , ffi_str (err_buf [0 ])
312+ return nil , ffi_str (err_buf , err_buf_len [0 ])
311313 end
312314 end
313315
314316 if options .priv_key ~= nil then
315317 local rc = C .ngx_http_lua_ffi_ssl_ctx_set_priv_key (ctx ,
316318 options .priv_key ,
317- err_buf , size )
319+ err_buf ,
320+ err_buf_len )
318321 if rc ~= FFI_OK then
319- return nil , ffi_str (err_buf [0 ])
322+ return nil , ffi_str (err_buf , err_buf_len [0 ])
320323 end
321324 end
322325
0 commit comments