mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 20:20:07 +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