Skip to content

Commit 9c41520

Browse files
abonislawskikv2019i
authored andcommitted
audio: mixin_mixout: check source_get_data() return
source_get_data() can return -EBUSY/-ENODATA without writing the buf_size out-parameter, leaving it (and source_ptr) uninitialized. Return the error instead of deriving buf_end from stack garbage, mirroring the sink_get_buffer() check. Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
1 parent 6349fdf commit 9c41520

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

src/audio/mixin_mixout/mixin_mixout.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -412,8 +412,10 @@ static int mixin_process(struct processing_module *mod,
412412
frames_to_copy = MIN(source_avail_frames, sinks_free_frames);
413413
bytes_to_consume = frames_to_copy * source_get_frame_bytes(sources[0]);
414414

415-
source_get_data(sources[0], bytes_to_consume, (const void **)&source_ptr.ptr,
416-
(const void **)&source_ptr.buf_start, &buf_size);
415+
ret = source_get_data(sources[0], bytes_to_consume, (const void **)&source_ptr.ptr,
416+
(const void **)&source_ptr.buf_start, &buf_size);
417+
if (ret < 0)
418+
return ret;
417419
source_ptr.buf_end = (uint8_t *)source_ptr.buf_start + buf_size;
418420
} else {
419421
/* if source does not produce any data -- do NOT block mixing but generate

0 commit comments

Comments
 (0)