]> git.kaiwu.me - nginx.git/commitdiff
Added check for SSL_get_current_cipher() results.
authorVladimir Homutov <vl@nginx.com>
Sat, 4 Apr 2020 19:25:41 +0000 (22:25 +0300)
committerVladimir Homutov <vl@nginx.com>
Sat, 4 Apr 2020 19:25:41 +0000 (22:25 +0300)
The function may return NULL and result need to be checked before use.

src/event/ngx_event_quic_protection.c

index 4359c93118f40a3a33f89fb98e697b7963865e0b..86300e68cc76276d18626ed270d5d98831fe4781 100644 (file)
@@ -62,13 +62,19 @@ static ngx_int_t
 ngx_quic_ciphers(ngx_ssl_conn_t *ssl_conn, ngx_quic_ciphers_t *ciphers,
     enum ssl_encryption_level_t level)
 {
-    ngx_int_t  id, len;
+    ngx_int_t          id, len;
+    const SSL_CIPHER  *cipher;
 
     if (level == ssl_encryption_initial) {
         id = NGX_AES_128_GCM_SHA256;
 
     } else {
-        id = SSL_CIPHER_get_id(SSL_get_current_cipher(ssl_conn)) & 0xffff;
+        cipher = SSL_get_current_cipher(ssl_conn);
+        if (cipher == NULL) {
+            return NGX_ERROR;
+        }
+
+        id = SSL_CIPHER_get_id(cipher) & 0xffff;
     }
 
     switch (id) {