On Sat, Feb 8, 2014 at 11:04 PM, Justin Ruggles
<[email protected]> wrote:
> This is basically an overread/overwrite-safe memcpy between a
> GetByteContext and a PutByteContext.
>
> CC:[email protected]
> ---
>  libavcodec/bytestream.h |   26 ++++++++++++++++++++++++++
>  1 files changed, 26 insertions(+), 0 deletions(-)
>

Ditto as 3/9, version bump and apichange.
Maybe they could be squashed?
Vittorio

> diff --git a/libavcodec/bytestream.h b/libavcodec/bytestream.h
> index 63d61f1..3eab225 100644
> --- a/libavcodec/bytestream.h
> +++ b/libavcodec/bytestream.h
> @@ -325,6 +325,32 @@ static av_always_inline unsigned int 
> bytestream2_get_eof(PutByteContext *p)
>      return p->eof;
>  }
>
> +static av_always_inline unsigned int bytestream2_copy_bufferu(PutByteContext 
> *p,
> +                                                              GetByteContext 
> *g,
> +                                                              unsigned int 
> size)
> +{
> +    memcpy(p->buffer, g->buffer, size);
> +    p->buffer += size;
> +    g->buffer += size;
> +    return size;
> +}
> +
> +static av_always_inline unsigned int bytestream2_copy_buffer(PutByteContext 
> *p,
> +                                                             GetByteContext 
> *g,
> +                                                             unsigned int 
> size)
> +{
> +    int size2;
> +
> +    if (p->eof)
> +        return 0;
> +    size  = FFMIN(g->buffer_end - g->buffer, size);
> +    size2 = FFMIN(p->buffer_end - p->buffer, size);
> +    if (size2 != size)
> +        p->eof = 1;
> +
> +    return bytestream2_copy_bufferu(p, g, size2);
> +}
> +
>  static av_always_inline unsigned int bytestream_get_buffer(const uint8_t **b,
>                                                             uint8_t *dst,
>                                                             unsigned int size)
> --
> 1.7.1
>
> _______________________________________________
> libav-devel mailing list
> [email protected]
> https://lists.libav.org/mailman/listinfo/libav-devel
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to