[sr-dev] git:3.3: dialog(k): proper unlock of profile for mi list command

Daniel-Constantin Mierla miconda at gmail.com
Mon Jun 25 18:39:59 CEST 2012


Module: sip-router
Branch: 3.3
Commit: 33a2157ec034c106e5a4bd42aa874e57550a13fe
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=33a2157ec034c106e5a4bd42aa874e57550a13fe

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
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 70ec2c5..3317216 100644
--- a/modules_k/dialog/dlg_profile.c
+++ b/modules_k/dialog/dlg_profile.c
@@ -845,8 +845,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 );
@@ -864,8 +864,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;




More information about the sr-dev mailing list