Commit e1a7cefe authored by annacc@chromium.org's avatar annacc@chromium.org

Check for duplicate id strings in ChunkDemuxer::AddId()

WebKit's MediaSource object keeps a private member variable, int m_nextSourceBufferId, for adding source ids since ids are no longer part of the spec.  It is possible that this int could wrap around if several source buffers are added.  To ensure this doesn't cause problems, ChunkDemuxer::AddId() should check the id string to make sure it is not a duplicate and, if so, throw a ReachedIdLimit error.

BUG=140861


Review URL: https://chromiumcodereview.appspot.com/10830185

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150459 0039d316-1c4b-4281-b951-d872f2087c98
parent d51f69bd
...@@ -611,7 +611,8 @@ ChunkDemuxer::Status ChunkDemuxer::AddId(const std::string& id, ...@@ -611,7 +611,8 @@ ChunkDemuxer::Status ChunkDemuxer::AddId(const std::string& id,
DCHECK_GT(codecs.size(), 0u); DCHECK_GT(codecs.size(), 0u);
base::AutoLock auto_lock(lock_); base::AutoLock auto_lock(lock_);
if (state_ != WAITING_FOR_INIT && state_ != INITIALIZING) if ((state_ != WAITING_FOR_INIT && state_ != INITIALIZING) ||
stream_parser_map_.count(id) > 0u)
return kReachedIdLimit; return kReachedIdLimit;
bool has_audio = false; bool has_audio = false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment