]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- memory management violations fixed 522/head
authorArtem Egorenkov <aegorenkov.91@gmail.com>
Fri, 6 Aug 2021 12:03:23 +0000 (14:03 +0200)
committerArtem Egorenkov <aegorenkov.91@gmail.com>
Fri, 6 Aug 2021 12:11:12 +0000 (14:11 +0200)
dns64/dns64.c
util/net_help.c

index c79bc9c65796ca06377b9f37c7e3360fa379b5ec..860b3a7287344752ae63ec97a0d32d309fdfbed4 100644 (file)
@@ -685,8 +685,12 @@ dns64_operate(struct module_qstate* qstate, enum module_ev event, int id,
        switch(event) {
                case module_event_new:
                        /* Tag this query as being new and fall through. */
-                       iq = (struct dns64_qstate*)regional_alloc(
-                               qstate->region, sizeof(*iq));
+                       if (!(iq = (struct dns64_qstate*)regional_alloc(
+                               qstate->region, sizeof(*iq)))) {
+                               log_err("out of memory");
+                               qstate->ext_state[id] = module_error;
+                               return;
+                       }
                        qstate->minfo[id] = iq;
                        iq->state = DNS64_NEW_QUERY;
                        iq->started_no_cache_store = qstate->no_cache_store;
index 06bc1f5dd7e68686a1130caf9440e86bca97e04f..5788ac87e8595eec2dadd911693b318ac26c149d 100644 (file)
@@ -1172,6 +1172,7 @@ void* connect_sslctx_create(char* key, char* pem, char* verifypem, int wincert)
        if((SSL_CTX_set_options(ctx, SSL_OP_NO_RENEGOTIATION) &
                SSL_OP_NO_RENEGOTIATION) != SSL_OP_NO_RENEGOTIATION) {
                log_crypto_err("could not set SSL_OP_NO_RENEGOTIATION");
+               SSL_CTX_free(ctx);
                return 0;
        }
 #endif