changeset 8394:df18ae7161b8 quic

Assorted fixes. Found by Clang Static Analyzer.
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 20 May 2020 15:36:24 +0300
parents e169cce912c7
children 578563babbd1
files src/event/ngx_event_quic.c src/event/ngx_event_quic_protection.c src/http/v3/ngx_http_v3_request.c
diffstat 3 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/event/ngx_event_quic.c
+++ b/src/event/ngx_event_quic.c
@@ -1081,6 +1081,7 @@ ngx_quic_input_handler(ngx_event_t *rev)
     ngx_quic_connection_t  *qc;
     static u_char           buf[NGX_QUIC_DEFAULT_MAX_PACKET_SIZE];
 
+    ngx_memzero(&b, sizeof(ngx_buf_t));
     b.start = buf;
     b.end = buf + sizeof(buf);
     b.pos = b.last = b.start;
@@ -1438,8 +1439,6 @@ ngx_quic_retry_input(ngx_connection_t *c
 
     c->log->action = "retrying quic connection";
 
-    qc = c->quic;
-
     if (ngx_buf_size(pkt->raw) < NGX_QUIC_MIN_INITIAL_SIZE) {
         ngx_log_error(NGX_LOG_INFO, c->log, 0,
                       "quic UDP datagram is too small for initial packet");
@@ -3243,7 +3242,6 @@ ngx_quic_retransmit(ngx_connection_t *c,
     qc = c->quic;
 
     now = ngx_current_msec;
-    wait = 0;
 
     if (ngx_queue_empty(&ctx->sent)) {
         *waitp = 0;
@@ -3949,6 +3947,7 @@ ngx_quic_free_frame(ngx_connection_t *c,
 
     if (frame->data) {
         ngx_free(frame->data);
+        frame->data = NULL;
     }
 
     ngx_queue_insert_head(&qc->free_frames, &frame->queue);
--- a/src/event/ngx_event_quic_protection.c
+++ b/src/event/ngx_event_quic_protection.c
@@ -914,6 +914,7 @@ ngx_quic_create_retry_packet(ngx_quic_he
     ad.len = ngx_quic_create_retry_itag(pkt, ad.data, &start);
 
     itag.data = ad.data + ad.len;
+    itag.len = EVP_GCM_TLS_TAG_LEN;
 
 #ifdef NGX_QUIC_DEBUG_CRYPTO
     ngx_quic_hexdump(pkt->log, "quic retry itag", ad.data, ad.len);
@@ -960,7 +961,7 @@ ngx_quic_parse_pn(u_char **pos, ngx_int_
     *pos = p;
 
     expected_pn = *largest_pn + 1;
-    pn_win = 1 << pn_nbits;
+    pn_win = 1ULL << pn_nbits;
     pn_hwin = pn_win / 2;
     pn_mask = pn_win - 1;
 
--- a/src/http/v3/ngx_http_v3_request.c
+++ b/src/http/v3/ngx_http_v3_request.c
@@ -618,7 +618,7 @@ ngx_http_v3_create_header(ngx_http_reque
 
         b = ngx_create_temp_buf(c->pool, len);
         if (b == NULL) {
-            NULL;
+            return NULL;
         }
 
         *b->last++ = NGX_HTTP_V3_FRAME_DATA;