Validate channel count before parsing Opus param string
This commit is contained in:
parent
0fa805d973
commit
dff1690fe1
1 changed files with 7 additions and 0 deletions
|
|
@ -664,6 +664,11 @@ static bool sendVideoAnnounce(PRTSP_MESSAGE response, int* error) {
|
||||||
static int parseOpusConfigFromParamString(char* paramStr, int channelCount, POPUS_MULTISTREAM_CONFIGURATION opusConfig) {
|
static int parseOpusConfigFromParamString(char* paramStr, int channelCount, POPUS_MULTISTREAM_CONFIGURATION opusConfig) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (channelCount > AUDIO_CONFIGURATION_MAX_CHANNEL_COUNT) {
|
||||||
|
Limelog("Invalid channel count: %d\n", channelCount);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
// Set channel count (included in the prefix, so not parsed below)
|
// Set channel count (included in the prefix, so not parsed below)
|
||||||
opusConfig->channelCount = channelCount;
|
opusConfig->channelCount = channelCount;
|
||||||
|
|
||||||
|
|
@ -760,6 +765,7 @@ static int parseOpusConfigurations(PRTSP_MESSAGE response) {
|
||||||
// Parse the normal quality Opus config
|
// Parse the normal quality Opus config
|
||||||
err = parseOpusConfigFromParamString(paramStart, channelCount, &NormalQualityOpusConfig);
|
err = parseOpusConfigFromParamString(paramStart, channelCount, &NormalQualityOpusConfig);
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
|
LC_ASSERT(err == 0);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -788,6 +794,7 @@ static int parseOpusConfigurations(PRTSP_MESSAGE response) {
|
||||||
// Parse the high quality Opus config
|
// Parse the high quality Opus config
|
||||||
err = parseOpusConfigFromParamString(paramStart, channelCount, &HighQualityOpusConfig);
|
err = parseOpusConfigFromParamString(paramStart, channelCount, &HighQualityOpusConfig);
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
|
LC_ASSERT(err == 0);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue