Skip to content

Commit 0593cec

Browse files
authored
fix: segmentation fault due to invalid cast, wrong debug log (#132) (#133)
1 parent c5e9cff commit 0593cec

File tree

3 files changed

+15
-8
lines changed

3 files changed

+15
-8
lines changed

lib/resty/proxy-wasm.lua

+7-2
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,13 @@ typedef struct {
3838
} ngx_str_t;
3939

4040
typedef struct {
41-
ngx_str_t key;
42-
ngx_str_t value;
41+
int len;
42+
u_char *data;
43+
} ngx_http_lua_ffi_str_t;
44+
45+
typedef struct {
46+
ngx_http_lua_ffi_str_t key;
47+
ngx_http_lua_ffi_str_t value;
4348
} proxy_wasm_table_elt_t;
4449

4550
void *ngx_http_wasm_load_plugin(const char *name, size_t name_len, const char *code, size_t size);

src/http/ngx_http_wasm_api.c

+5-4
Original file line numberDiff line numberDiff line change
@@ -978,9 +978,10 @@ ngx_http_wasm_req_get_headers(ngx_http_request_t *r, int32_t addr, int32_t size_
978978
ngx_memcpy(key, headers[i].key.data, headers[i].key.len);
979979
ngx_memcpy(val, headers[i].value.data, headers[i].value.len);
980980

981-
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
982-
"wasm request header: \"%V: %V\"",
983-
&headers[i].key, &headers[i].value);
981+
ngx_log_debug4(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
982+
"wasm request header: \"%*s: %*s\"",
983+
headers[i].key.len, headers[i].key.data,
984+
headers[i].value.len, headers[i].value.data);
984985
}
985986

986987
/* get pseudo headers :path, :method, :scheme */
@@ -1387,7 +1388,7 @@ ngx_http_wasm_http_call_resp_get_header(ngx_http_request_t *r, char *key, int32
13871388
hdr = ctx->call_resp_headers;
13881389

13891390
for (i = 0; i < ctx->call_resp_n_header; i++) {
1390-
if ((size_t) key_size != hdr[i].key.len) {
1391+
if (key_size != hdr[i].key.len) {
13911392
continue;
13921393
}
13931394

src/proxy_wasm/proxy_wasm_types.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@
1919

2020

2121
#include <ngx_core.h>
22+
#include <ngx_http_lua_api.h>
2223

2324

2425
typedef struct {
25-
ngx_str_t key;
26-
ngx_str_t value;
26+
ngx_http_lua_ffi_str_t key;
27+
ngx_http_lua_ffi_str_t value;
2728
} proxy_wasm_table_elt_t;
2829

2930

0 commit comments

Comments
 (0)