On Sun, Oct 30, 2011 at 03:53:49PM +0100, Janne Grunau wrote:
> ---
>  cmdutils.c |   18 +++++++++++++++---
>  1 files changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/cmdutils.c b/cmdutils.c
> index ade3f10..c158de3 100644
> --- a/cmdutils.c
> +++ b/cmdutils.c
> @@ -787,6 +787,7 @@ int read_yesno(void)
>  
>  int read_file(const char *filename, char **bufptr, size_t *size)
>  {
> +    int ret;
>      FILE *f = fopen(filename, "rb");
>  
>      if (!f) {
> @@ -802,11 +803,22 @@ int read_file(const char *filename, char **bufptr, 
> size_t *size)
>          fclose(f);
>          return AVERROR(ENOMEM);
>      }
> -    fread(*bufptr, 1, *size, f);
> -    (*bufptr)[*size++] = '\0';
> +    ret = fread(*bufptr, 1, *size, f);
> +    if (ret < *size) {
> +        av_free(*bufptr);
> +        if (ferror(f)) {
> +            av_log(NULL, AV_LOG_ERROR, "Error while reading file '%s': %s\n",
> +                   filename, strerror(errno));
> +            ret = AVERROR(errno);
> +        } else
> +            ret = AVERROR_EOF;
> +    } else {
> +        ret = 0;
> +        (*bufptr)[*size++] = '\0';
> +    }
>  
>      fclose(f);
> -    return 0;
> +    return ret;
>  }
>  
>  void init_pts_correction(PtsCorrectionContext *ctx)
> -- 

LGTM
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to