Przeglądaj źródła

dialog(k): destroy dlg structure first time ref counter gets to 0

- reported by Bayan Towfix, FS#173
(cherry picked from commit 5949e296b7bafab42a4ac3261f453f286d98e41c)
Daniel-Constantin Mierla 14 lat temu
rodzic
commit
ae248a3744
1 zmienionych plików z 5 dodań i 0 usunięć
  1. 5 0
      modules_k/dialog/dlg_hash.c

+ 5 - 0
modules_k/dialog/dlg_hash.c

@@ -92,6 +92,11 @@ struct dlg_table *d_table = 0;
  */
 #define unref_dlg_unsafe(_dlg,_cnt,_d_entry)   \
 	do { \
+		if((_dlg)->ref <= 0 ) { \
+			LM_WARN("invalid unref'ing dlg %p with ref %d by %d\n",\
+					(_dlg),(_dlg)->ref,(_cnt));\
+			break; \
+		} \
 		(_dlg)->ref -= (_cnt); \
 		LM_DBG("unref dlg %p with %d -> %d\n",\
 			(_dlg),(_cnt),(_dlg)->ref);\