]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Handle fr_event_timer_in_query() error return in ldap_xlat() (CID #1504007) (#4804)
authorJames Jones <jejones3141@gmail.com>
Sat, 10 Dec 2022 00:07:23 +0000 (18:07 -0600)
committerGitHub <noreply@github.com>
Sat, 10 Dec 2022 00:07:23 +0000 (18:07 -0600)
src/modules/rlm_ldap/rlm_ldap.c

index bf6d69cfa271e1a257c70e379e2433393089e283..73db03f10f487a69d59a40094f63c2e6c6bcabb6 100644 (file)
@@ -476,8 +476,12 @@ static xlat_action_t ldap_xlat(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
 
        fr_trunk_request_enqueue(&query->treq, ttrunk->trunk, request, query, NULL);
 
-       fr_event_timer_in(query, unlang_interpret_event_list(request), &query->ev, handle_config->res_timeout,
-                         ldap_query_timeout, query->treq);
+       if (fr_event_timer_in(query, unlang_interpret_event_list(request), &query->ev, handle_config->res_timeout,
+                             ldap_query_timeout, query->treq) < 0) {
+               REDEBUG("Unable to set timeout for LDAP query");
+               fr_trunk_request_signal_cancel(query->treq);
+               goto error;
+       }
 
        return unlang_xlat_yield(request, ldap_xlat_resume, ldap_xlat_signal, query);
 }