git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12989 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2009-04-10 21:37:17 +00:00
parent e4a513f073
commit 8570a2d719
2 changed files with 20 additions and 7 deletions

View File

@ -135,8 +135,13 @@ SWITCH_DECLARE(char *) switch_core_perform_permanent_strdup(const char *todup, c
switch_size_t len; switch_size_t len;
switch_assert(memory_manager.memory_pool != NULL); switch_assert(memory_manager.memory_pool != NULL);
if (!todup) if (!todup) {
return NULL; return NULL;
}
if (switch_strlen_zero(todup)) {
return SWITCH_BLANK_STRING;
}
#ifdef LOCK_MORE #ifdef LOCK_MORE
#ifdef USE_MEM_LOCK #ifdef USE_MEM_LOCK
@ -229,6 +234,11 @@ SWITCH_DECLARE(char *) switch_core_perform_session_strdup(switch_core_session_t
if (!todup) { if (!todup) {
return NULL; return NULL;
} }
if (switch_strlen_zero(todup)) {
return SWITCH_BLANK_STRING;
}
#ifdef LOCK_MORE #ifdef LOCK_MORE
#ifdef USE_MEM_LOCK #ifdef USE_MEM_LOCK
switch_mutex_lock(memory_manager.mem_lock); switch_mutex_lock(memory_manager.mem_lock);
@ -264,6 +274,11 @@ SWITCH_DECLARE(char *) switch_core_perform_strdup(switch_memory_pool_t *pool, co
if (!todup) { if (!todup) {
return NULL; return NULL;
} }
if (switch_strlen_zero(todup)) {
return SWITCH_BLANK_STRING;
}
#ifdef LOCK_MORE #ifdef LOCK_MORE
#ifdef USE_MEM_LOCK #ifdef USE_MEM_LOCK
switch_mutex_lock(memory_manager.mem_lock); switch_mutex_lock(memory_manager.mem_lock);

View File

@ -1447,19 +1447,17 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_execute_exten(switch_core_se
session->stack_count++; session->stack_count++;
new_profile = switch_caller_profile_clone(session, profile); new_profile = switch_caller_profile_clone(session, profile);
new_profile->destination_number = switch_core_session_strdup(session, exten); new_profile->destination_number = switch_core_strdup(new_profile->pool, exten);
if (!switch_strlen_zero(dialplan)) { if (!switch_strlen_zero(dialplan)) {
new_profile->dialplan = switch_core_session_strdup(session, dialplan); new_profile->dialplan = switch_core_strdup(new_profile->pool, dialplan);
} }
if (!switch_strlen_zero(context)) { if (!switch_strlen_zero(context)) {
new_profile->context = switch_core_session_strdup(session, context); new_profile->context = switch_core_strdup(new_profile->pool, context);
} }
if (!(dpstr = switch_core_session_strdup(session, new_profile->dialplan))) { dpstr = switch_core_session_strdup(session, new_profile->dialplan);
abort();
}
argc = switch_separate_string(dpstr, ',', dp, (sizeof(dp) / sizeof(dp[0]))); argc = switch_separate_string(dpstr, ',', dp, (sizeof(dp) / sizeof(dp[0])));
for (x = 0; x < argc; x++) { for (x = 0; x < argc; x++) {