mod_voicemail: Fix SQL error on forward when filename length become greater than 255. FS-2959

This commit is contained in:
Marc Olivier Chouinard 2011-04-23 23:52:03 -04:00
parent 37b14c9a31
commit adffe07f75
1 changed files with 17 additions and 3 deletions

View File

@ -2514,12 +2514,26 @@ static switch_status_t deliver_vm(vm_profile_t *profile,
goto failed; goto failed;
} }
if (copy) {
file_path = switch_mprintf("%s%smsg_%s_broadcast_%s", dir_path, SWITCH_PATH_SEPARATOR, use_uuid, filename); file_path = switch_mprintf("%s%smsg_%s_broadcast_%s", dir_path, SWITCH_PATH_SEPARATOR, use_uuid, filename);
if (copy) { if (strlen(file_path) >= 250 /* Max size of the SQL field */) {
char *ext;
switch_safe_free(file_path);
if (!(ext = strrchr(filename, '.'))) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Filename doesn't include a file format %s\n", filename);
ret = SWITCH_STATUS_FALSE;
goto failed;
}
ext++;
file_path = switch_mprintf("%s%smsg_%s_broadcast_%" SWITCH_TIME_T_FMT ".%s", dir_path, SWITCH_PATH_SEPARATOR, use_uuid, switch_micro_time_now(), ext);
}
switch_file_copy(path, file_path, SWITCH_FPROT_FILE_SOURCE_PERMS, pool); switch_file_copy(path, file_path, SWITCH_FPROT_FILE_SOURCE_PERMS, pool);
} else { } else {
switch_safe_free(file_path);
file_path = (char *) path; file_path = (char *) path;
} }