SSL_SESSION_free(3)SSL_SESSION_free(3)NAMESSL_SESSION_free - Free an allocated SSL_SESSION structure
SYNOPSIS
#include <openssl/ssl.h>
void SSL_SESSION_free(
SSL_SESSION *session );
DESCRIPTION
The SSL_SESSION_free() function decrements the reference count of ses‐
sion and removes the SSL_SESSION structure pointed to by session and
frees up the allocated memory, if the the reference count has reached
0.
NOTES
SSL_SESSION objects are allocated when a TLS/SSL handshake operation is
successfully completed. Depending on the settings (see SSL_CTX_set_ses‐
sion_cache_mode()), the SSL_SESSION objects are internally referenced
by the SSL_CTX and linked into its session cache. SSL objects may be
using the SSL_SESSION object; as a session may be reused, several SSL
objects may be using one SSL_SESSION object at the same time. There‐
fore, it is crucial to keep the reference count (usage information)
correct and not delete an SSL_SESSION object that is still used. Other‐
wise, this might lead to program failures due to dangling pointers.
These failures may also appear delayed. For example, this could happen
when an SSL_SESSION object was completely freed as the reference count
incorrectly became 0, but it is still referenced in the internal ses‐
sion cache and the cache list is processed during a SSL_CTX_flush_ses‐
sions() operation.
The SSL_SESSION_free() function can only be called for SSL_SESSION
objects for which the reference count was explicitly incremented (e.g.
by calling SSL_get1_session(). See SSL_get_session().) or when the
SSL_SESSION object was generated outside a TLS handshake operation,
e.g. by using d2i_SSL_SESSION(). It must not be called on other
SSL_SESSION objects; this would cause incorrect reference counts and
program failures.
RETURN VALUES
The SSL_SESSION_free() function does not provide diagnostic informa‐
tion.
SEE ALSO
Functions: ssl(3), SSL_get_session(3), SSL_CTX_set_ses‐
sion_cache_mode(3), SSL_CTX_flush_sessions(3), d2i_SSL_SESSION(3)SSL_SESSION_free(3)