diff --git a/src/sdp-client.c b/src/sdp-client.c
index edbdaec..b6a3663 100644
--- a/src/sdp-client.c
+++ b/src/sdp-client.c
static GSList *cached_sdp_sessions = NULL;
-static gboolean cached_session_expired(gpointer user_data)
+static void cleanup_cached_session(struct cached_sdp_session *cached)
{
- struct cached_sdp_session *cached = user_data;
-
cached_sdp_sessions = g_slist_remove(cached_sdp_sessions, cached);
-
sdp_close(cached->session);
-
g_free(cached);
+}
+
+static gboolean cached_session_expired(gpointer user_data)
+{
+ struct cached_sdp_session *cached = user_data;
+
+ cleanup_cached_session(cached);
return FALSE;
}