Hi, I am using Openser-1.2.1-notls. I think there is a problem in function "mi_print_dlgs()" of file modules/dialog/dlg_hash.c in line number 449, there is a dlg_lock() function call, after this in the next for loop block (starts from line 451 to 496) some goto error labels used, but in that error label dlg_unblock() function has never been called. For that reason I think if there is no dlg_unlock() function call from "error:" (label) then it may cause a deadlock situation in openser, when next dlg_lock() try to be called. Thats why I think there should be a dlg_unlock() function call in the "error:" block.
448 for( i=0 ; i<d_table->size ; i++ ) { 449 dlg_lock( d_table, &(d_table->entries[i]) ); 450 451 for( dlg=d_table->entries[i].first ; dlg ; dlg=dlg->next ) { 452 node = add_mi_node_child(rpl, 0, "dialog",6 , 0, 0 ); 453 if (node==0) 454 goto error; *** *** *** 496 } /* This is the end of 2nd for loop*/ 497 dlg_unlock( d_table, &(d_table->entries[i]) ); 498 } /* Inthe following Error code no dlg_unlock() called */ 501 error: 502 LOG(L_ERR,"ERROR:mi_ps: failed to add node\n"); 503 free_mi_tree(rpl_tree); 504 return 0; Sorry for my poor English. Regards, Salah Uddin Ahmed
_______________________________________________ Devel mailing list Devel@openser.org http://openser.org/cgi-bin/mailman/listinfo/devel