From 1b6269d3c540ccec05b357c82e353ec6c8f52117 Mon Sep 17 00:00:00 2001 From: Phillip Whelan Date: Thu, 16 Sep 2021 19:59:25 -0300 Subject: [PATCH] oauth2: release upstream connection on exit (#4095) When retrieving an oauth2 token, upon authentication failure, we were not releasing the upstream connection, only releasing the HTTP client context. This patch makes sure to release the upstream context on exception and on return, this fix a little memory leak: ------ before ------ MB 33.32^ # | @@@:# | @@@@@@@@:# | @@@@@@@@@@@@@:# | @@@@@@@@@@@@@@@@@@@:# | ::@@@@@@@@@@@@@@@@@@@@@@:# | ::@@@::@@@@@@@@@@@@@@@@@@@@@@:# | @@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# | @::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# | :::::@::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# | ::::@@:::::@::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# | ::::@::: @@:::::@::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# | @::::: ::@::: @@:::::@::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# | ::::::@::::: ::@::: @@:::::@::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# |:@::::::: @::::: ::@::: @@:::::@::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# |:@::::::: @::::: ::@::: @@:::::@::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# |:@::::::: @::::: ::@::: @@:::::@::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# |:@::::::: @::::: ::@::: @@:::::@::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# |:@::::::: @::::: ::@::: @@:::::@::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# |:@::::::: @::::: ::@::: @@:::::@::::@@::@: @@@::@@@@@@@@@@@@@@@@@@@@@@:# 0 +----------------------------------------------------------------------->Gi 0 29.22 ------ after ------ MB 10.56^ # | :::::::::::::::::@:::::@::@::::::::::::::::::::::@:::::::::@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: | :: ::: ::::::: : @: : :@: @:: :: : :::: ::: :::::@::::::: :@::::::@::#: 0 +----------------------------------------------------------------------->Gi 0 211.1 Signed-off-by: Phillip Whelan --- src/flb_oauth2.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/flb_oauth2.c b/src/flb_oauth2.c index 5db01948b6c..16f5aede2a9 100644 --- a/src/flb_oauth2.c +++ b/src/flb_oauth2.c @@ -398,6 +398,7 @@ char *flb_oauth2_token_get(struct flb_oauth2 *ctx) flb_info("[oauth2] access token from '%s:%s' retrieved", ctx->host, ctx->port); flb_http_client_destroy(c); + flb_upstream_conn_release(u_conn); ctx->issued = time(NULL); ctx->expires = ctx->issued + ctx->expires_in; return ctx->access_token; @@ -405,6 +406,8 @@ char *flb_oauth2_token_get(struct flb_oauth2 *ctx) } flb_http_client_destroy(c); + flb_upstream_conn_release(u_conn); + return NULL; }