const char *sasl_final_resp;
const char *const *auth_passdb_args;
struct anvil_query *anvil_query;
+ struct anvil_request *anvil_request;
unsigned int master_auth_id;
unsigned int master_tag;
int ret;
client->anvil_query = NULL;
+ client->anvil_request = NULL;
conn_count = 0;
if (reply != NULL && str_to_uint(reply, &conn_count) < 0)
query = t_strconcat("LOOKUP\t", login_binary->protocol, "/",
net_ip2addr(&client->ip), "/",
str_tabescape(client->virtual_user), NULL);
+ client->anvil_request = req;
client->anvil_query =
anvil_client_query(anvil, query, anvil_lookup_callback, req);
}
void sasl_server_auth_abort(struct client *client)
{
client->auth_try_aborted = TRUE;
- if (client->anvil_query != NULL)
+ if (client->anvil_query != NULL) {
anvil_client_query_abort(anvil, &client->anvil_query);
+ i_free(client->anvil_request);
+ }
sasl_server_auth_cancel(client, NULL, NULL, SASL_SERVER_REPLY_AUTH_ABORTED);
}