History

1. use WELS_CLIP1 to replace table look-up; 2. fix bugs about buffer overflow 3. add more boundary checks

Licai Guo committed 12 years ago

Commit fc56c7d1 parent 99412b07 files · +106 −79Browse files

Showing the changes to codec/decoder/core/src/au_parser.cpp (1 of 7 files). Show all

Unified · Split

codec/decoder/core/src/au_parser.cpp+15−0
@@ -220,6 +220,21 @@ uint8_t* ParseNalHeader (PWelsDecoderContext pCtx, SNalUnitHeader* pNalUnitHeade · 219 unmodified lines
220220 }
221221
222222 DecodeNalHeaderExt (pCurNal, pNal);
223+ if ((pCurNal->sNalHeaderExt.uiQualityId != 0) || (pCurNal->sNalHeaderExt.bUseRefBasePicFlag != 0)) {
224+ WelsLog (pCtx, WELS_LOG_WARNING,
225+ "ParseNalHeader() in Prefix Nal Unit:uiQualityId (%d) != 0, bUseRefBasePicFlag (%d) != 0, not supported!\n",
226+ pCurNal->sNalHeaderExt.uiQualityId, pCurNal->sNalHeaderExt.bUseRefBasePicFlag);
227+ PAccessUnit pCurAu = pCtx->pAccessUnitList;
228+ uint32_t uiAvailNalNum = pCurAu->uiAvailUnitsNum;
229+ ForceClearCurrentNal (pCurAu);
230+
231+ if (uiAvailNalNum > 1) {
232+ pCurAu->uiEndPos = uiAvailNalNum - 2;
233+ pCtx->bAuReadyFlag = true;
234+ }
235+ pCtx->iErrorCode |= dsInvalidArgument;
236+ return NULL;
237+ }
223238
224239 pNal += NAL_UNIT_HEADER_EXT_SIZE;
225240 iNalSize -= NAL_UNIT_HEADER_EXT_SIZE;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t