[asterisk-commits] mjordan: branch 1.8 r361558 - /branches/1.8/apps/app_meetme.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Apr 6 15:31:43 CDT 2012


Author: mjordan
Date: Fri Apr  6 15:31:39 2012
New Revision: 361558

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=361558
Log:
Fix memory leak when using MeetMeAdmin 'e' option with user specified

A memory leak/reference counting leak occurs if the MeetMeAdmin 'e' command
(eject last user that joined) is used in conjunction with a specified user.
Regardless of the command being executed, if a user is specified for the
command, MeetMeAdmin will look up that user.  Because the 'e' option kicks
the last user that joined, as opposed to the one specified, the reference to
the user specified by the command would be leaked when the user variable
was assigned to the last user that joined.

Modified:
    branches/1.8/apps/app_meetme.c

Modified: branches/1.8/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/apps/app_meetme.c?view=diff&rev=361558&r1=361557&r2=361558
==============================================================================
--- branches/1.8/apps/app_meetme.c (original)
+++ branches/1.8/apps/app_meetme.c Fri Apr  6 15:31:39 2012
@@ -4586,6 +4586,12 @@
 	case 101: /* e: Eject last user*/
 	{
 		int max_no = 0;
+
+		/* If they passed in a user, disregard it */
+		if (user) {
+			ao2_ref(user, -1);
+		}
+
 		ao2_callback(cnf->usercontainer, OBJ_NODATA, user_max_cmp, &max_no);
 		user = ao2_find(cnf->usercontainer, &max_no, 0);
 		if (!ast_test_flag64(&user->userflags, CONFFLAG_ADMIN))




More information about the asterisk-commits mailing list