mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	Get rid of a needless memory allocation and only create a conference structure in find_conf_realtime if data was read from realtime. (issue #8669 reported by robl)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48966 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -1961,25 +1961,21 @@ static struct ast_conference *find_conf_realtime(struct ast_channel *chan, char | ||||
| 		if (!strcmp(confno, cnf->confno))  | ||||
| 			break; | ||||
| 	} | ||||
| 	if (cnf){ | ||||
| 	if (cnf) { | ||||
| 		cnf->refcount += refcount; | ||||
| 	} | ||||
| 	AST_LIST_UNLOCK(&confs); | ||||
|  | ||||
| 	if (!cnf) { | ||||
| 		char *pin = NULL, *pinadmin = NULL; /* For temp use */ | ||||
|  | ||||
| 		cnf = ast_calloc(1, sizeof(struct ast_conference)); | ||||
| 		if (!cnf) { | ||||
| 			ast_log(LOG_ERROR, "Out of memory\n"); | ||||
| 			return NULL; | ||||
| 		} | ||||
|  | ||||
| 		 | ||||
| 		var = ast_load_realtime("meetme", "confno", confno, NULL); | ||||
|  | ||||
| 		if (!var) | ||||
| 			return NULL; | ||||
|  | ||||
| 		while (var) { | ||||
| 			if (!strcasecmp(var->name, "confno")) { | ||||
| 				ast_copy_string(cnf->confno, var->value, sizeof(cnf->confno)); | ||||
| 			} else if (!strcasecmp(var->name, "pin")) { | ||||
| 			if (!strcasecmp(var->name, "pin")) { | ||||
| 				pin = ast_strdupa(var->value); | ||||
| 			} else if (!strcasecmp(var->name, "adminpin")) { | ||||
| 				pinadmin = ast_strdupa(var->value); | ||||
| @@ -1987,7 +1983,7 @@ static struct ast_conference *find_conf_realtime(struct ast_channel *chan, char | ||||
| 			var = var->next; | ||||
| 		} | ||||
| 		ast_variables_destroy(var); | ||||
|  | ||||
| 		 | ||||
| 		cnf = build_conf(confno, pin ? pin : "", pinadmin ? pinadmin : "", make, dynamic, refcount); | ||||
| 	} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user