SSL_SESSION_free(3) Libérer une structure SSL_SESSION allouée

SYNOPSIS


#include <openssl/ssl.h>
void SSL_SESSION_free(SSL_SESSION *session);

DESCRIPTION

SSL_SESSION_free() décrémente le décompte de références de session et retire la structure SSL_SESSION pointée par session et libère la mémoire allouée, si le décompte de références atteint 0.

NOTES

Les objets SSL_SESSION sont alloués quand une poignée de main TLS/SSL se termine avec succès. En fonction de la configuration, consultez SSL_CTX_set_session_cache_mode(3), les objets SSL_SESSION sont référencés en interne par le SSL_CTX et attachés dans son cache de sessions. Les objets SSL peuvent utiliser l'objet SSL_SESSION ; comme une session peut être réutilisée, plusieurs objets SSL peuvent utiliser le même objet SSL_SESSION en même temps. Il est donc important de garder un compte des références (informations sur l'utilisation) correct et de ne pas supprimer un objet SSL_SESSION qui est encore utilisé, ce qui pourrait conduire à des erreurs du programme du fait de pointeurs pointant en l'air. Ces échecs peuvent aussi apparaître à retardement, par exemple quand un objet SSL_SESSION a été libéré parce que son décompte de références est passé à zéro de façon erronée, mais est toujours référencé dans le cache de sessions interne et que la liste du cache est analysée lors d'une opération SSL_CTX_flush_sessions(3).

SSL_SESSION_free() doit uniquement être appelée pour des objets SSL_SESSION, pour lesquels le décompte de référence a été incrémenté explicitement (par exemple en appelant SSL_get1_session(), consultez SSL_get_session(3)) ou si l'objet SSL_SESSION a été généré en dehors de l'opération de poignée de main TLS, par exemple en utilisant d2i_SSL_SESSION(3). Elle ne doit pas être appelée avec les autres objets SSL_SESSION, puisque cela résulterait en des décomptes de référence erronés, et donc en des erreurs du programme.

VALEURS DE RETOUR

SSL_SESSION_free() ne fournit pas d'information de diagnostic.