]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
lib/tls/virtual_server: detach child on all fr_tls_call_push failure paths (double...
authorAlexander Bainbridge-Sedivy <alex.bainbridge@inkbridge.io>
Mon, 20 Jul 2026 13:39:43 +0000 (09:39 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 30 Jul 2026 15:19:59 +0000 (11:19 -0400)
src/lib/tls/virtual_server.c

index 60f34b4f4495bec384ba14bf12d1a24c9b18df99..59fe54ef327e4d4f2c58cc710084983d7831e9ae 100644 (file)
@@ -67,6 +67,7 @@ unlang_action_t fr_tls_call_push(request_t *child, unlang_function_no_result_t r
        if (unlang_subrequest_child_push(NULL, child,
                                         tls_session,
                                         true, UNLANG_SUB_FRAME) < 0) {
+               request_detach(child);
                return UNLANG_ACTION_FAIL;
        }
 
@@ -79,7 +80,10 @@ unlang_action_t fr_tls_call_push(request_t *child, unlang_function_no_result_t r
                                 resume,
                                 NULL,
                                 0, UNLANG_SUB_FRAME,
-                                tls_session) < 0) return UNLANG_ACTION_FAIL;
+                                tls_session) < 0) {
+               request_detach(child);
+               return UNLANG_ACTION_FAIL;
+       }
 
        /*
         *      Now the child and parent stacks are both