[nginx] gRPC: fixed possible sign extension of error and setting_value.

Maxim Dounin mdounin at mdounin.ru
Thu Mar 22 18:07:38 UTC 2018


details:   http://hg.nginx.org/nginx/rev/070c972336c4
branches:  
changeset: 7249:070c972336c4
user:      Maxim Dounin <mdounin at mdounin.ru>
date:      Thu Mar 22 19:26:25 2018 +0300
description:
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).

diffstat:

 src/http/modules/ngx_http_grpc_module.c |  6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diffs (30 lines):

diff --git a/src/http/modules/ngx_http_grpc_module.c b/src/http/modules/ngx_http_grpc_module.c
--- 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_
         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_requ
             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_re
             break;
 
         case sw_value:
-            ctx->setting_value = ch << 24;
+            ctx->setting_value = (ngx_uint_t) ch << 24;
             state = sw_value_2;
             break;
 


More information about the nginx-devel mailing list