Line data Source code
1 : /* xfinish.c --- Finish libgsasl session. 2 : * Copyright (C) 2002-2023 Simon Josefsson 3 : * 4 : * This file is part of GNU SASL Library. 5 : * 6 : * GNU SASL Library is free software; you can redistribute it and/or 7 : * modify it under the terms of the GNU Lesser General Public License 8 : * as published by the Free Software Foundation; either version 2.1 of 9 : * the License, or (at your option) any later version. 10 : * 11 : * GNU SASL Library is distributed in the hope that it will be useful, 12 : * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 : * Lesser General Public License for more details. 15 : * 16 : * You should have received a copy of the GNU Lesser General Public 17 : * License License along with GNU SASL Library; if not, write to the 18 : * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 : * Boston, MA 02110-1301, USA. 20 : * 21 : */ 22 : 23 : #include "internal.h" 24 : 25 : /** 26 : * gsasl_finish: 27 : * @sctx: libgsasl session handle. 28 : * 29 : * Destroy a libgsasl client or server handle. The handle must not be 30 : * used with other libgsasl functions after this call. 31 : **/ 32 : void 33 521 : gsasl_finish (Gsasl_session * sctx) 34 : { 35 521 : if (sctx == NULL) 36 2 : return; 37 : 38 519 : if (sctx->clientp) 39 : { 40 304 : if (sctx->mech && sctx->mech->client.finish) 41 231 : sctx->mech->client.finish (sctx, sctx->mech_data); 42 : } 43 : else 44 : { 45 215 : if (sctx->mech && sctx->mech->server.finish) 46 160 : sctx->mech->server.finish (sctx, sctx->mech_data); 47 : } 48 : 49 519 : free (sctx->anonymous_token); 50 519 : free (sctx->authid); 51 519 : free (sctx->authzid); 52 519 : free (sctx->password); 53 519 : free (sctx->passcode); 54 519 : free (sctx->pin); 55 519 : free (sctx->suggestedpin); 56 519 : free (sctx->service); 57 519 : free (sctx->hostname); 58 519 : free (sctx->gssapi_display_name); 59 519 : free (sctx->realm); 60 519 : free (sctx->digest_md5_hashed_password); 61 519 : free (sctx->qops); 62 519 : free (sctx->qop); 63 519 : free (sctx->scram_iter); 64 519 : free (sctx->scram_salt); 65 519 : free (sctx->scram_salted_password); 66 519 : free (sctx->scram_serverkey); 67 519 : free (sctx->scram_storedkey); 68 519 : free (sctx->cb_tls_unique); 69 519 : free (sctx->cb_tls_exporter); 70 519 : free (sctx->saml20_idp_identifier); 71 519 : free (sctx->saml20_redirect_url); 72 519 : free (sctx->openid20_redirect_url); 73 519 : free (sctx->openid20_outcome_data); 74 : /* If you add anything here, remember to change change map() in 75 : property.c and Gsasl_session in internal.h. */ 76 : 77 519 : free (sctx); 78 : }