avoid operations on closed file handles in embedded languages

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12255 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2009-02-23 19:52:29 +00:00
parent 1daa0746e3
commit ea88aed04b
3 changed files with 20 additions and 0 deletions

View File

@ -1190,6 +1190,10 @@ static switch_status_t js_stream_input_callback(switch_core_session_t *session,
switch_file_handle_t *fh = cb_state->extra; switch_file_handle_t *fh = cb_state->extra;
struct js_session *jss = cb_state->session_state; struct js_session *jss = cb_state->session_state;
if (!switch_test_flag(fh, SWITCH_FILE_OPEN)) {
return SWITCH_STATUS_FALSE;
}
if ((status = js_common_callback(session, input, itype, buf, buflen)) != SWITCH_STATUS_SUCCESS) { if ((status = js_common_callback(session, input, itype, buf, buflen)) != SWITCH_STATUS_SUCCESS) {
return status; return status;
} }

View File

@ -332,6 +332,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_file_seek(switch_file_handle_t *fh,
switch_assert(fh != NULL); switch_assert(fh != NULL);
switch_assert(fh->file_interface != NULL); switch_assert(fh->file_interface != NULL);
if (!switch_test_flag(fh, SWITCH_FILE_OPEN)) {
return SWITCH_STATUS_FALSE;
}
if (!fh->file_interface->file_seek) { if (!fh->file_interface->file_seek) {
return SWITCH_STATUS_FALSE; return SWITCH_STATUS_FALSE;
} }
@ -349,6 +353,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_file_set_string(switch_file_handle_t
switch_assert(fh != NULL); switch_assert(fh != NULL);
switch_assert(fh->file_interface != NULL); switch_assert(fh->file_interface != NULL);
if (!switch_test_flag(fh, SWITCH_FILE_OPEN)) {
return SWITCH_STATUS_FALSE;
}
if (!fh->file_interface->file_set_string) { if (!fh->file_interface->file_set_string) {
return SWITCH_STATUS_FALSE; return SWITCH_STATUS_FALSE;
} }
@ -361,6 +369,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_file_get_string(switch_file_handle_t
switch_assert(fh != NULL); switch_assert(fh != NULL);
switch_assert(fh->file_interface != NULL); switch_assert(fh->file_interface != NULL);
if (!switch_test_flag(fh, SWITCH_FILE_OPEN)) {
return SWITCH_STATUS_FALSE;
}
if (!fh->file_interface->file_get_string) { if (!fh->file_interface->file_get_string) {
return SWITCH_STATUS_FALSE; return SWITCH_STATUS_FALSE;
} }

View File

@ -1207,6 +1207,10 @@ SWITCH_DECLARE(switch_status_t) CoreSession::process_callback_result(char *resul
} }
if (fhp) { if (fhp) {
if (!switch_test_flag(fhp, SWITCH_FILE_OPEN)) {
return SWITCH_STATUS_FALSE;
}
if (!strncasecmp(result, "speed", 5)) { if (!strncasecmp(result, "speed", 5)) {
char *p; char *p;