mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-18 07:48:14 +00:00
Import of revistion 18250 from 1.2
- Fix minor memory leak - Add proper cause codes on memory allocation failures git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@18261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -12114,16 +12114,22 @@ static struct ast_channel *sip_request_call(const char *type, int format, void *
|
||||
char *dest = data;
|
||||
|
||||
oldformat = format;
|
||||
format &= ((AST_FORMAT_MAX_AUDIO << 1) - 1);
|
||||
if (!format) {
|
||||
if ((format &= ((AST_FORMAT_MAX_AUDIO << 1) - 1))) {
|
||||
ast_log(LOG_NOTICE, "Asked to get a channel of unsupported format %s while capability is %s\n", ast_getformatname(oldformat), ast_getformatname(global_capability));
|
||||
return NULL;
|
||||
}
|
||||
if (!(p = sip_alloc(NULL, NULL, 0, SIP_INVITE)))
|
||||
if (!(p = sip_alloc(NULL, NULL, 0, SIP_INVITE))) {
|
||||
ast_log(LOG_ERROR, "Unable to build sip pvt data for '%s' (Out of memory)\n", (char *)data);
|
||||
*cause = AST_CAUSE_CONGESTION;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!(p->options = ast_calloc(1, sizeof(*p->options))))
|
||||
if (!(p->options = ast_calloc(1, sizeof(*p->options)))) {
|
||||
sip_destroy(p);
|
||||
ast_log(LOG_ERROR, "Unable to build option SIP data structure - Out of memory\n");
|
||||
*cause = AST_CAUSE_CONGESTION;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ast_copy_string(tmp, dest, sizeof(tmp));
|
||||
host = strchr(tmp, '@');
|
||||
|
||||
Reference in New Issue
Block a user