Skip to content
  • Timothy B. Terriberry's avatar
    Fix skipping logic for multiplexed non-Opus pages. · 78cd9bcf
    Timothy B. Terriberry authored
    This bug appears to have been present since the original code
     import.
    This was a "clever" rearrangement of the control flow from the
     _fetch_and_process_packet() in vorbisfile to use a do ... while(0)
     instead of a "while(1)".
    However, this also makes "continue" equivalent to "break": it does
     not actually go back to the top of the loop, because the loop
     condition is false.
    
    This bug was harmless, because ogg_stream_pagein() then refuses to
     ingest a page with the wrong serialno, but we can simplify things
     by fixing it.
    The "not strictly necessary" loop is now completely unnecessary.
    The extra checks that existed in vorbisfile have all been moved to
     later in the main loop, so we can just continue that one directly,
     with no wasted work, instead of embedding a smaller loop inside.
    
    Fixes Coverity CID 149875.
    78cd9bcf