More memory checks

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4056 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.2-netsec
James Golovich 21 years ago
parent 584418a282
commit 73831ac046

@ -6411,10 +6411,12 @@ static struct iax2_peer *build_peer(const char *name, struct ast_variable *v, in
} else { } else {
ast_mutex_unlock(&peerl.lock); ast_mutex_unlock(&peerl.lock);
peer = malloc(sizeof(struct iax2_peer)); peer = malloc(sizeof(struct iax2_peer));
if (peer) {
memset(peer, 0, sizeof(struct iax2_peer)); memset(peer, 0, sizeof(struct iax2_peer));
peer->expire = -1; peer->expire = -1;
peer->pokeexpire = -1; peer->pokeexpire = -1;
} }
}
if (peer) { if (peer) {
peer->messagedetail = globalmessagedetail; peer->messagedetail = globalmessagedetail;
peer->usejitterbuf = globalusejitterbuf; peer->usejitterbuf = globalusejitterbuf;
@ -6589,6 +6591,7 @@ static struct iax2_user *build_user(const char *name, struct ast_variable *v, in
} else { } else {
ast_mutex_unlock(&userl.lock); ast_mutex_unlock(&userl.lock);
user = malloc(sizeof(struct iax2_user)); user = malloc(sizeof(struct iax2_user));
if (user)
memset(user, 0, sizeof(struct iax2_user)); memset(user, 0, sizeof(struct iax2_user));
} }

@ -8164,6 +8164,8 @@ static struct sip_peer *temp_peer(char *name)
{ {
struct sip_peer *peer; struct sip_peer *peer;
peer = malloc(sizeof(struct sip_peer)); peer = malloc(sizeof(struct sip_peer));
if (!peer)
return NULL;
memset(peer, 0, sizeof(struct sip_peer)); memset(peer, 0, sizeof(struct sip_peer));
peer->expire = -1; peer->expire = -1;
peer->pokeexpire = -1; peer->pokeexpire = -1;
@ -8228,12 +8230,14 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, int
} else { } else {
ast_mutex_unlock(&peerl.lock); ast_mutex_unlock(&peerl.lock);
peer = malloc(sizeof(struct sip_peer)); peer = malloc(sizeof(struct sip_peer));
if (peer) {
memset(peer, 0, sizeof(struct sip_peer)); memset(peer, 0, sizeof(struct sip_peer));
peer->expire = -1; peer->expire = -1;
peer->pokeexpire = -1; peer->pokeexpire = -1;
} }
peer->lastmsgssent = -1; }
if (peer) { if (peer) {
peer->lastmsgssent = -1;
if (!found) { if (!found) {
strncpy(peer->name, name, sizeof(peer->name)-1); strncpy(peer->name, name, sizeof(peer->name)-1);
strncpy(peer->context, default_context, sizeof(peer->context)-1); strncpy(peer->context, default_context, sizeof(peer->context)-1);

@ -90,6 +90,11 @@ int ast_monitor_start( struct ast_channel *chan, const char *format_spec,
} }
monitor = malloc(sizeof(struct ast_channel_monitor)); monitor = malloc(sizeof(struct ast_channel_monitor));
if (!monitor) {
if (need_lock)
ast_mutex_unlock(&chan->lock);
return -1;
}
memset(monitor, 0, sizeof(struct ast_channel_monitor)); memset(monitor, 0, sizeof(struct ast_channel_monitor));
/* Determine file names */ /* Determine file names */
@ -391,6 +396,11 @@ static int start_monitor_action(struct mansession *s, struct message *m)
if ((!fname) || (ast_strlen_zero(fname))) { if ((!fname) || (ast_strlen_zero(fname))) {
// No filename base specified, default to channel name as per CLI // No filename base specified, default to channel name as per CLI
fname = malloc (FILENAME_MAX); fname = malloc (FILENAME_MAX);
if (!fname) {
astman_send_error(s, m, "Could not start monitoring channel");
ast_mutex_unlock(&c->lock);
return 0;
}
memset(fname, 0, FILENAME_MAX); memset(fname, 0, FILENAME_MAX);
strncpy(fname, c->name, FILENAME_MAX-1); strncpy(fname, c->name, FILENAME_MAX-1);
// Channels have the format technology/channel_name - have to replace that / // Channels have the format technology/channel_name - have to replace that /

@ -99,11 +99,13 @@ static int load_odbc_config(void)
if (!strcmp(cat, "ENV")) { if (!strcmp(cat, "ENV")) {
for (v = ast_variable_browse(config, cat); v; v = v->next) { for (v = ast_variable_browse(config, cat); v; v = v->next) {
env_var = malloc(strlen(v->name) + strlen(v->value) + 2); env_var = malloc(strlen(v->name) + strlen(v->value) + 2);
if (env_var) {
sprintf(env_var, "%s=%s", v->name, v->value); sprintf(env_var, "%s=%s", v->name, v->value);
ast_log(LOG_NOTICE, "Adding ENV var: %s=%s\n", v->name, v->value); ast_log(LOG_NOTICE, "Adding ENV var: %s=%s\n", v->name, v->value);
putenv(env_var); putenv(env_var);
free(env_var); free(env_var);
} }
}
cat = ast_category_browse(config, cat); cat = ast_category_browse(config, cat);
} }
@ -222,6 +224,8 @@ odbc_obj *new_odbc_obj(char *name, char *dsn, char *username, char *password)
static odbc_obj *new; static odbc_obj *new;
new = malloc(sizeof(odbc_obj)); new = malloc(sizeof(odbc_obj));
if (!new)
return NULL;
memset(new, 0, sizeof(odbc_obj)); memset(new, 0, sizeof(odbc_obj));
new->env = SQL_NULL_HANDLE; new->env = SQL_NULL_HANDLE;

Loading…
Cancel
Save