summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2018-03-22 19:26:25 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2018-03-22 19:26:25 +0300
commit0ac57648ebc93358e977939bfcb9d1e67485b98e (patch)
treec3b0f0832fd2892d8029578c113b67ff5b4d5b99
parent8e8734ec82cde91a02d0cbfaae0d0df6b5aaab14 (diff)
gRPC: fixed possible sign extension of error and setting_value.
All cases are harmless and should not happen on valid values, though can result in bad values being shown incorrectly in logs. Found by Coverity (CID 1430311, 1430312, 1430313).
-rw-r--r--src/http/modules/ngx_http_grpc_module.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/http/modules/ngx_http_grpc_module.c b/src/http/modules/ngx_http_grpc_module.c
index b6be9b874..837ad9a2e 100644
--- a/src/http/modules/ngx_http_grpc_module.c
+++ b/src/http/modules/ngx_http_grpc_module.c
@@ -3212,7 +3212,7 @@ ngx_http_grpc_parse_rst_stream(ngx_http_request_t *r, ngx_http_grpc_ctx_t *ctx,
switch (state) {
case sw_start:
- ctx->error = ch << 24;
+ ctx->error = (ngx_uint_t) ch << 24;
state = sw_error_2;
break;
@@ -3325,7 +3325,7 @@ ngx_http_grpc_parse_goaway(ngx_http_request_t *r, ngx_http_grpc_ctx_t *ctx,
break;
case sw_error:
- ctx->error = ch << 24;
+ ctx->error = (ngx_uint_t) ch << 24;
state = sw_error_2;
break;
@@ -3555,7 +3555,7 @@ ngx_http_grpc_parse_settings(ngx_http_request_t *r, ngx_http_grpc_ctx_t *ctx,
break;
case sw_value:
- ctx->setting_value = ch << 24;
+ ctx->setting_value = (ngx_uint_t) ch << 24;
state = sw_value_2;
break;