Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9a37b243 authored by Rakesh Kumar's avatar Rakesh Kumar Committed by Ray Essick
Browse files

OpusHeader: Add error checks for channel count

Add error check for invalid number of channel count in
WriteOpusHeader().

Bug: 181155583
Test: test in bug
Change-Id: I4b96f1a537103beaf1a3298943b5a5e1893488aa
parent e72957e0
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -146,6 +146,10 @@ bool ParseOpusHeader(const uint8_t* data, size_t data_size, OpusHeader* header)
int WriteOpusHeader(const OpusHeader &header, int input_sample_rate,
                    uint8_t* output, size_t output_size) {
    // See https://wiki.xiph.org/OggOpus#ID_Header.
    if (header.channels < 1 || header.channels > kMaxChannels) {
        ALOGE("Invalid channel count: %d", header.channels);
        return -1;
    }
    const size_t total_size = kOpusHeaderStreamMapOffset + header.channels;
    if (output_size < total_size) {
        ALOGE("Output buffer too small for header.");