From e4cf6739e62c2ac1e5364315aaed1a7b73919253 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Mon, 5 Oct 2020 11:53:01 +0200 Subject: [PATCH] dialog: do unlock after saving updated dialog details - lock()/unlock() for dialog slots are reentrant --- src/modules/dialog/dlg_var.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modules/dialog/dlg_var.c b/src/modules/dialog/dlg_var.c index fa9eae9d1fa..b2a373a5018 100644 --- a/src/modules/dialog/dlg_var.c +++ b/src/modules/dialog/dlg_var.c @@ -434,10 +434,11 @@ int pv_set_dlg_variable(struct sip_msg* msg, pv_param_t *param, int op, pv_value /* unlock dialog */ if (dlg) { dlg->dflags |= DLG_FLAG_CHANGED_VARS; - dlg_unlock(d_table, &(d_table->entries[dlg->h_entry])); - if ( dlg_db_mode==DB_MODE_REALTIME ) + if ( dlg_db_mode==DB_MODE_REALTIME ) { + /* dlg_lock() / dlg_unlock() are reentrant */ update_dialog_dbinfo(dlg); - + } + dlg_unlock(d_table, &(d_table->entries[dlg->h_entry])); } print_lists(dlg);