[FFmpeg-devel] [PATCH] Optimize output buffer size check in base64 decode.

Paul B Mahol onemda at gmail.com
Fri Jan 20 22:35:19 CET 2012


On 1/20/12, Reimar Doeffinger <Reimar.Doeffinger at gmx.de> wrote:
> Signed-off-by: Reimar Doeffinger <Reimar.Doeffinger at gmx.de>
> ---
>  libavutil/base64.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/libavutil/base64.c b/libavutil/base64.c
> index 6843a53..9eba58b 100644
> --- a/libavutil/base64.c
> +++ b/libavutil/base64.c
> @@ -47,6 +47,7 @@ int av_base64_decode(uint8_t *out, const char *in, int
> out_size)
>  {
>      int i, v;
>      uint8_t *dst = out;
> +    uint8_t *end = out + out_size;
>
>      v = 0;
>      for (i = 0; ; i++) {
> @@ -55,7 +56,7 @@ int av_base64_decode(uint8_t *out, const char *in, int
> out_size)
>              return in[i] && in[i] != '=' ? -1 : dst - out;
>          v = (v << 6) + map2[index];
>          if (i & 3) {
> -            if (dst - out < out_size) {
> +            if (dst  < end) {

nit: remove extra space, overall OK
>                  *dst++ = v >> (6 - 2 * (i & 3));
>              }
>          }
> --
> 1.7.8.3


More information about the ffmpeg-devel mailing list