Skip to content

Commit aa58488

Browse files
committed
refactor: copy literal to caller error buffer
1 parent 896f36e commit aa58488

1 file changed

Lines changed: 14 additions & 11 deletions

File tree

lib/ngx/ssl.lua

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ local get_size_ptr = base.get_size_ptr
1919
local FFI_DECLINED = base.FFI_DECLINED
2020
local FFI_OK = base.FFI_OK
2121
local bor = bit.bor
22+
local ERR_BUF_SIZE = 256
2223

2324

2425
ffi.cdef[[
@@ -66,11 +67,11 @@ void *ngx_http_lua_ffi_ssl_ctx_init(unsigned int protocols, char **err);
6667

6768
void 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

Comments
 (0)