protobuf
protobuf copied to clipboard
gogo protobuf not check value in slice is nil
func (m *MultiUpdateMarchReply) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if len(m.SessionToken) > 0 {
i -= len(m.SessionToken)
copy(dAtA[i:], m.SessionToken)
i = encodeVarintMarch(dAtA, i, uint64(len(m.SessionToken)))
i--
dAtA[i] = 0x12
}
if len(m.Changes) > 0 {
for iNdEx := len(m.Changes) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Changes[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintMarch(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
}
}
return len(dAtA) - i, nil
}
Why the code which gogo protobuf generated doesn't check m.Changes[iNdEx] is nil? sometimes this causes program to crash