]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7465: make sure write buffer is big enough on stereo file handles
authorMichael Jerris <mike@jerris.com>
Fri, 24 Apr 2015 14:47:16 +0000 (09:47 -0500)
committerBrian <brian@freeswitch.org>
Fri, 24 Apr 2015 14:50:01 +0000 (09:50 -0500)
src/switch_core_file.c

index 66e5df1d6e85aa10059e0ddafeb66a137eb34c96..81fb16ed28860a11e7ad021436a526bc91413a7b 100644 (file)
@@ -412,14 +412,14 @@ SWITCH_DECLARE(switch_status_t) switch_core_file_write(switch_file_handle_t *fh,
                switch_resample_process(fh->resampler, data, (uint32_t) * len);
 
                if (fh->resampler->to_len > orig_len) {
-                       if (!fh->dbuf) {
+                       if (!fh->dbuf || (fh->dbuflen < fh->resampler->to_len * 2 * fh->channels)) {
                                void *mem;
                                fh->dbuflen = fh->resampler->to_len * 2 * fh->channels;
                                mem = realloc(fh->dbuf, fh->dbuflen);
                                switch_assert(mem);
                                fh->dbuf = mem;
                        }
-                       switch_assert(fh->resampler->to_len * 2 *fh->channels <= fh->dbuflen);
+                       switch_assert(fh->resampler->to_len * 2 * fh->channels <= fh->dbuflen);
                        memcpy(fh->dbuf, fh->resampler->to, fh->resampler->to_len * 2 * fh->channels);
                        data = fh->dbuf;
                } else {