Merge "Fixed HLS parsing of bad content IDs." into vic-widevine-dev
This commit is contained in:
@@ -454,8 +454,7 @@ bool InitializationData::ConstructWidevineInitData(
|
||||
LOGV("Base64 decode of json data failed");
|
||||
return false;
|
||||
}
|
||||
std::string json_string((const char*)(&json_init_data[0]),
|
||||
json_init_data.size());
|
||||
const std::string json_string(json_init_data.begin(), json_init_data.end());
|
||||
|
||||
// Parse the Json string using jsmn
|
||||
jsmn_parser parser;
|
||||
@@ -513,12 +512,13 @@ bool InitializationData::ConstructWidevineInitData(
|
||||
break;
|
||||
case kContentIdState:
|
||||
if (tokens[i].type == JSMN_STRING) {
|
||||
std::string base64_content_id(json_string, tokens[i].start,
|
||||
tokens[i].end - tokens[i].start);
|
||||
std::vector<uint8_t> content_id_data =
|
||||
const std::string base64_content_id = json_string.substr(
|
||||
tokens[i].start, tokens[i].end - tokens[i].start);
|
||||
const std::vector<uint8_t> content_id_data =
|
||||
wvutil::Base64Decode(base64_content_id);
|
||||
content_id.assign(reinterpret_cast<const char*>(&content_id_data[0]),
|
||||
content_id_data.size());
|
||||
if (!content_id_data.empty()) {
|
||||
content_id.assign(content_id_data.begin(), content_id_data.end());
|
||||
}
|
||||
}
|
||||
state = kParseState;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user