deepch / vdk

A set of libraries for building streaming services. RTSP RTMP MP4 WS TS DASH WEBRTC MP4f

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vdk/codec/h264parser/parser.go Index out of bounds

xxds opened this issue · comments

commented

vdk/codec/h264parser/parser.go line 230 nalus = append(nalus, _b[:_val4]) Index out of bounds
original:
if val4 <= uint32(len(b)) {
_val4 := val4
_b := b[4:]
nalus := [][]byte{}
for {
nalus = append(nalus, _b[:_val4])
_b = _b[_val4:]
if len(_b) < 4 {
break
}
_val4 = pio.U32BE(_b)
_b = _b[4:]
if _val4 > uint32(len(_b)) {
break
}
}
if len(_b) == 0 {
return nalus, NALU_AVCC
}
}

modify:
if val4 <= uint32(len(b)) {
_val4 := val4
_b := b[4:]
nalus := [][]byte{}
for {
if _val4 > uint32(len(_b)) {
break
}

nalus = append(nalus, _b[:_val4])
_b = _b[_val4:]
if len(_b) < 4 {
break
}
_val4 = pio.U32BE(_b)
_b = _b[4:]
}
if len(_b) == 0 {
return nalus, NALU_AVCC
}
}