Skip to content

Commit 3e24a95

Browse files
authored
bugfix: the body size may overflow since the size_t is only int32 in 32-bit system (openresty#1756)
1 parent eeee406 commit 3e24a95

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/ngx_http_lua_socket_tcp.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2396,7 +2396,7 @@ ngx_http_lua_socket_tcp_read(ngx_http_request_t *r,
23962396
ngx_connection_t *c;
23972397
ngx_buf_t *b;
23982398
ngx_event_t *rev;
2399-
size_t size;
2399+
off_t size;
24002400
ssize_t n;
24012401
unsigned read;
24022402
off_t preread = 0;
@@ -2503,16 +2503,16 @@ ngx_http_lua_socket_tcp_read(ngx_http_request_t *r,
25032503
}
25042504

25052505
b = &u->buffer;
2506-
size = (size_t) (b->end - b->last);
2506+
size = b->end - b->last;
25072507
}
25082508

25092509
if (u->raw_downstream) {
25102510
preread = r->header_in->last - r->header_in->pos;
25112511

25122512
if (preread) {
25132513

2514-
if ((off_t) size > preread) {
2515-
size = (size_t) preread;
2514+
if (size > preread) {
2515+
size = preread;
25162516
}
25172517

25182518
ngx_http_lua_probe_req_socket_consume_preread(r,
@@ -2553,8 +2553,8 @@ ngx_http_lua_socket_tcp_read(ngx_http_request_t *r,
25532553
preread = r->request_body->rest;
25542554
}
25552555

2556-
if ((off_t) size > preread) {
2557-
size = (size_t) preread;
2556+
if (size > preread) {
2557+
size = preread;
25582558
}
25592559

25602560
ngx_http_lua_probe_req_socket_consume_preread(r,
@@ -2573,8 +2573,8 @@ ngx_http_lua_socket_tcp_read(ngx_http_request_t *r,
25732573
continue;
25742574
}
25752575

2576-
if (size > (size_t) r->request_body->rest) {
2577-
size = (size_t) r->request_body->rest;
2576+
if (size > r->request_body->rest) {
2577+
size = r->request_body->rest;
25782578
}
25792579
}
25802580

0 commit comments

Comments
 (0)