static int append_extradata(APNGDemuxContext *ctx, AVIOContext *pb, int len)

{

    int previous_size = ctx->extra_data_size;

    int new_size, ret;

    uint8_t *new_extradata;



    if (previous_size > INT_MAX - len)

        return AVERROR_INVALIDDATA;



    new_size = previous_size + len;

    new_extradata = av_realloc(ctx->extra_data, new_size + AV_INPUT_BUFFER_PADDING_SIZE);

    if (!new_extradata)

        return AVERROR(ENOMEM);

    ctx->extra_data = new_extradata;

    ctx->extra_data_size = new_size;



    if ((ret = avio_read(pb, ctx->extra_data + previous_size, len)) < 0)

        return ret;



    return previous_size;

}

static int append_extradata(APNGDemuxContext *ctx, AVIOContext *pb, int len)

{

    int previous_size = ctx->extra_data_size;

    int new_size, ret;

    uint8_t *new_extradata;



    if (previous_size > INT_MAX - len)

        return AVERROR_INVALIDDATA;



    new_size = previous_size + len;

    new_extradata = av_realloc(ctx->extra_data, new_size + AV_INPUT_BUFFER_PADDING_SIZE);

    if (!new_extradata)

        return AVERROR(ENOMEM);

    ctx->extra_data = new_extradata;

    ctx->extra_data_size = new_size;



    if ((ret = avio_read(pb, ctx->extra_data + previous_size, len)) < 0)

        return ret;



    return previous_size;

}

static int append_extradata(APNGDemuxContext *ctx, AVIOContext *pb, int len)     int previous_size = ctx->extra_data_size;     new_extradata = av_realloc(ctx->extra_data, new_size + AV_INPUT_BUFFER_PADDING_SIZE);     ctx->extra_data = new_extradata;     ctx->extra_data_size = new_size;     if ((ret = avio_read(pb, ctx->extra_data + previous_size, len)) < 0)
static int FUNC_0(APNGDemuxContext *VAR_0, AVIOContext *VAR_1, int VAR_2)

{

    int VAR_3 = VAR_0->extra_data_size;

    int VAR_4, VAR_5;

    uint8_t *new_extradata;



    if (VAR_3 > INT_MAX - VAR_2)

        return AVERROR_INVALIDDATA;



    VAR_4 = VAR_3 + VAR_2;

    new_extradata = av_realloc(VAR_0->extra_data, VAR_4 + AV_INPUT_BUFFER_PADDING_SIZE);

    if (!new_extradata)

        return AVERROR(ENOMEM);

    VAR_0->extra_data = new_extradata;

    VAR_0->extra_data_size = VAR_4;



    if ((VAR_5 = avio_read(VAR_1, VAR_0->extra_data + VAR_3, VAR_2)) < 0)

        return VAR_5;



    return VAR_3;

}

static int FUNC_0(APNGDemuxContext *VAR_0, AVIOContext *VAR_1, int VAR_2)
{ int VAR_3 = VAR_0->extra_data_size; int VAR_4, VAR_5; uint8_t *new_extradata; if (VAR_3 > INT_MAX - VAR_2)
return AVERROR_INVALIDDATA; VAR_4 = VAR_3 + VAR_2; new_extradata = av_realloc(VAR_0->extra_data, VAR_4 + AV_INPUT_BUFFER_PADDING_SIZE); if (!new_extradata)
return AVERROR(ENOMEM); VAR_0->extra_data = new_extradata; VAR_0->extra_data_size = VAR_4; if ((VAR_5 = avio_read(VAR_1, VAR_0->extra_data + VAR_3, VAR_2)) < 0)
return VAR_5; return VAR_3; }