]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-11671 fix potential devided by zero error
authorMariah Yang <mariah@signalwire.com>
Fri, 22 Feb 2019 07:00:16 +0000 (15:00 +0800)
committerMike Jerris <mike@signalwire.com>
Thu, 6 Jun 2019 15:39:05 +0000 (11:39 -0400)
src/switch_ivr_play_say.c

index 35fed600cb62f24ca09c62c57754d6218e87f503..5e56262e729fd4b07fdf0c335ba2620b8b2a882c 100644 (file)
@@ -957,9 +957,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_file(switch_core_session_t *se
 
        }
 
-       if (read_impl.actual_samples_per_second) {
+       if (read_impl.actual_samples_per_second && fh->native_rate >= 1000) {
                switch_channel_set_variable_printf(channel, "record_seconds", "%d", fh->samples_out / fh->native_rate);
-               switch_channel_set_variable_printf(channel, "record_ms", "%d", fh->samples_out / (fh->native_rate/ 1000));
+               switch_channel_set_variable_printf(channel, "record_ms", "%d", fh->samples_out / (fh->native_rate / 1000));
 
        }
 
@@ -1941,10 +1941,11 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
                switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "done playing file %s\n", file);
                switch_channel_set_variable_printf(channel, "playback_last_offset_pos", "%d", fh->offset_pos);
 
-               if (read_impl.samples_per_second) {
+               if (read_impl.samples_per_second && fh->native_rate >= 1000) {
                        switch_channel_set_variable_printf(channel, "playback_seconds", "%d", fh->samples_in / fh->native_rate);
                        switch_channel_set_variable_printf(channel, "playback_ms", "%d", fh->samples_in / (fh->native_rate / 1000));
                }
+
                switch_channel_set_variable_printf(channel, "playback_samples", "%d", fh->samples_in);
 
                if (switch_event_create(&event, SWITCH_EVENT_PLAYBACK_STOP) == SWITCH_STATUS_SUCCESS) {