{
fr_state_entry_t *entry, *old;
fr_dlist_head_t data;
+ fr_pair_t *vp;
old = request_data_get(request, state, 0);
request_data_list_init(&data);
log_request_pair_list(L_DBG_LVL_2, request, NULL, &request->session_state_pairs, "&session-state.");
}
+ MEM(vp = request_state_replace(request, NULL));
+
PTHREAD_MUTEX_LOCK(&state->mutex);
/*
if (!entry) {
PTHREAD_MUTEX_UNLOCK(&state->mutex);
RERROR("Creating state entry failed");
+
+ talloc_free(request_state_replace(request, vp));
request_data_restore(request, &data); /* Put it back again */
return -1;
}
fr_assert(request->session_state_ctx);
entry->seq_start = request->seq_start;
- entry->ctx = request_state_replace(request, NULL);
+ entry->ctx = vp;
fr_dlist_move(&entry->data, &data);
PTHREAD_MUTEX_UNLOCK(&state->mutex);