const ogg_packet* packet)
{
const char* message = NULL;
- uint8_t* newdata = NULL;
int newsize = avc_context->extradata_size + 2 + packet->bytes;
+ int err = AVERROR_INVALIDDATA;
if (packet->bytes < 0) {
message = "ogg_packet has negative size";
} else if (newsize < avc_context->extradata_size) {
message = "extradata_size would overflow";
} else {
- newdata = av_realloc(avc_context->extradata, newsize);
- if (!newdata)
+ if ((err = av_reallocp(&avc_context->extradata, newsize)) < 0) {
+ avc_context->extradata_size = 0;
message = "av_realloc failed";
+ }
}
if (message) {
av_log(avc_context, AV_LOG_ERROR, "concatenate_packet failed: %s\n", message);
- return -1;
+ return err;
}
- avc_context->extradata = newdata;
avc_context->extradata_size = newsize;
AV_WB16(avc_context->extradata + (*offset), packet->bytes);
*offset += 2;