Module: sip-router
Branch: 3.2
Commit: 2a00c6d6439d9528c0445a8b1596a0c932623970
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=2a00c6d6439d9528c0445a8b1596a0c932623970

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date:   Mon Jun 25 18:36:18 2012 +0200

dialog(k): proper unlock of profile for mi list command

- the profile was unlocked in a wrong place, before finishing listing
  the its content and could cause a race in accessing it
- reported by Ricardo Martinez
(cherry picked from commit 3a2e929c63c656fe2db78e746546af05c66740ea)

---

 modules_k/dialog/dlg_profile.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/modules_k/dialog/dlg_profile.c b/modules_k/dialog/dlg_profile.c
index b1e3078..52c7205 100644
--- a/modules_k/dialog/dlg_profile.c
+++ b/modules_k/dialog/dlg_profile.c
@@ -799,8 +799,8 @@ struct mi_root * mi_profile_list(struct mi_root *cmd_tree, 
void *param )
                                        ph=ph->next;
                                }while( ph!=profile->entries[i].first );
                        }
-                       lock_release( &profile->lock );
                }
+               lock_release( &profile->lock );
        } else {
                /* check for value also */
                lock_get( &profile->lock );
@@ -818,8 +818,8 @@ struct mi_root * mi_profile_list(struct mi_root *cmd_tree, 
void *param )
                                        ph=ph->next;
                                }while( ph!=profile->entries[i].first );
                        }
-                       lock_release( &profile->lock );
                }
+               lock_release( &profile->lock );
        }
 
        return rpl_tree;


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to