aboutsummaryrefslogtreecommitdiffstats
path: root/main/slinfactory.c
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-30 15:42:29 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-30 15:42:29 +0000
commitacb751fd0957b93bda94d50afb6cd63afaf732e7 (patch)
tree6fa56bc13b8e62017204f46c1b95c7b6f4babad3 /main/slinfactory.c
parent9ee09de3f9bf46a288d20d41769d7ce4cb6a639d (diff)
Merged revisions 101222 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r101222 | file | 2008-01-30 11:41:04 -0400 (Wed, 30 Jan 2008) | 4 lines Fix an issue where if a frame of higher sample size preceeded a frame of lower sample size and ast_slinfactory_read was called with a sample size of the combined values or higher a crash would happen. (closes issue #11878) Reported by: stuarth ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@101223 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/slinfactory.c')
-rw-r--r--main/slinfactory.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/main/slinfactory.c b/main/slinfactory.c
index f8354603a..fdcfa878f 100644
--- a/main/slinfactory.c
+++ b/main/slinfactory.c
@@ -109,7 +109,7 @@ int ast_slinfactory_read(struct ast_slinfactory *sf, short *buf, size_t samples)
ineed = samples - sofar;
if (sf->holdlen) {
- if ((sofar + sf->holdlen) <= ineed) {
+ if (sf->holdlen <= ineed) {
memcpy(offset, sf->hold, sf->holdlen * sizeof(*offset));
sofar += sf->holdlen;
offset += sf->holdlen;
@@ -128,7 +128,7 @@ int ast_slinfactory_read(struct ast_slinfactory *sf, short *buf, size_t samples)
if ((frame_ptr = AST_LIST_REMOVE_HEAD(&sf->queue, frame_list))) {
frame_data = frame_ptr->data;
- if ((sofar + frame_ptr->samples) <= ineed) {
+ if (frame_ptr->samples <= ineed) {
memcpy(offset, frame_data, frame_ptr->samples * sizeof(*offset));
sofar += frame_ptr->samples;
offset += frame_ptr->samples;