]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix that malloc failure for ngtcp2_conn_server_new
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 17 Jun 2026 13:33:06 +0000 (15:33 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 17 Jun 2026 13:33:06 +0000 (15:33 +0200)
  cleans up reference that older ngtcp2 versions can leave.
  Thanks to Qifan Zhang, Palo Alto Networks, for the report.

doc/Changelog
services/listen_dnsport.c
testcode/doqclient.c

index 3678a06efef4131466df2e6061b10cbe90857c5b..93c86dc411c908148ddf47f07d968341af07d2e3 100644 (file)
@@ -26,6 +26,9 @@
        - Fix that malloc failure in doq connection setup, does
          not crash in doq connection delete later. Thanks to Qifan
          Zhang, Palo Alto Networks, for the report.
+       - Fix that malloc failure for ngtcp2_conn_server_new
+         cleans up reference that older ngtcp2 versions can leave.
+         Thanks to Qifan Zhang, Palo Alto Networks, for the report.
 
 16 June 2026: Wouter
        - Fix to disallow $INCLUDE for secondary zones. Start up
index 03234ab9bff151b17e724c278151d6880d44c827..58b74863ff31bd4de2af878010f982c87c0c3613 100644 (file)
@@ -4881,6 +4881,7 @@ doq_conn_setup(struct doq_conn* conn, uint8_t* scid, size_t scidlen,
        rv = ngtcp2_conn_server_new(&conn->conn, &scid_cid, &sv_scid, &path,
                conn->version, &callbacks, &settings, &params, NULL, conn);
        if(rv != 0) {
+               conn->conn = NULL;
                lock_rw_unlock(&conn->table->conid_lock);
                log_err("ngtcp2_conn_server_new failed: %s",
                        ngtcp2_strerror(rv));
index 5c5698f1b06891178438861f2d0b6d74adaa82f8..e83766673c1ebf1ca01a4c951ca5dc161577aa90 100644 (file)
@@ -1137,8 +1137,11 @@ static struct ngtcp2_conn* conn_client_setup(struct doq_client_data* data)
                client_chosen_version, &cbs, &settings, &params,
                NULL, /* ngtcp2_mem allocator, use default */
                data /* callback argument */);
-       if(!conn) fatal_exit("could not ngtcp2_conn_client_new: %s",
-               ngtcp2_strerror(rv));
+       if(rv!=0) {
+               conn = NULL;
+               fatal_exit("could not ngtcp2_conn_client_new: %s",
+                       ngtcp2_strerror(rv));
+       }
        data->cc_algo = settings.cc_algo;
        return conn;
 }