1. 03 Sep, 2020 1 commit
  2. 24 Aug, 2020 1 commit
  3. 12 Aug, 2020 2 commits
    • Clément Bœsch's avatar
      Fix: check ogg_sync_buffer() pointer before writing to it · 9d3bed1a
      Clément Bœsch authored
      ogg_sync_buffer() can return NULL on several scenarios, the first one
      being if ogg_sync_check() fails, but it can also happen in case of an
      allocation failure, or internal bug.
      9d3bed1a
    • Clément Bœsch's avatar
      Fix: cleanup format residual after close · 6598fd21
      Clément Bœsch authored
      This fixes the situation where shout_open(), shout_close(), and
      shout_open() again are called on the same shout_t context. If this
      happens, the shout_t.send callback will remain set after close,
      preventing the stream from being re-opened in try_connect().  As a
      result, the next write will cause a use after free on
      shout_t.format_data (free happened on the shout_close() call).
      
      Technically, only reseting shout_t.send is enough to fix the crash, but
      making sure format_data is always reset as well makes similar issues
      much more deterministic and understandable when crashing. The close
      callback is also reset for consistency and integrity.
      
      This issue was observed with the libshout output of MPD.
      
      For the record, here are the steps to reproduce the crash:
      
      In a mpd.conf:
      
          audio_output {
              type        "shout"
              name        "My Shout Stream"
              host        "localhost"
              port        "8000"
              mount       "/mpd.ogg"
              password    "hackme"
              bitrate     "128"
              format      "44100:16:1"
          }
      
      Then assuming icecast is running with the default configuration:
      
          mpc add /             # add all files to the playlist
          mpc play              # start writing to the shout stream
          mpc toggleoutput 1    # disable shout output (calls shout_close)
          mpc toggleoutput 1    # enable shout output (calls shout_open on the same shout_t)
          mpc play              # write again to the shout stream
      
      Closes #2312, #2318
      6598fd21
  4. 26 Jun, 2019 2 commits
  5. 29 May, 2019 1 commit
  6. 28 May, 2019 1 commit
  7. 27 May, 2019 1 commit
  8. 22 May, 2019 9 commits
  9. 20 May, 2019 1 commit
  10. 15 May, 2019 1 commit
  11. 14 May, 2019 20 commits