diff mbox

[FFmpeg-devel] Fixes bug https://trac.ffmpeg.org/ticket/6700.

Message ID 20170928151148.11452-1-melkor@odyssey.com.uy
State Superseded
Headers show

Commit Message

Pablo Montilla Sept. 28, 2017, 3:11 p.m. UTC
---
 libavformat/isom.h | 2 +-
 libavformat/mov.c  | 6 +-----
 2 files changed, 2 insertions(+), 6 deletions(-)

Comments

wm4 Sept. 28, 2017, 3:25 p.m. UTC | #1
On Thu, 28 Sep 2017 12:11:48 -0300
Pablo Montilla <melkor@odyssey.com.uy> wrote:

> ---
>  libavformat/isom.h | 2 +-
>  libavformat/mov.c  | 6 +-----
>  2 files changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/libavformat/isom.h b/libavformat/isom.h
> index fdd98c28f5..a32b92ccdd 100644
> --- a/libavformat/isom.h
> +++ b/libavformat/isom.h
> @@ -52,7 +52,7 @@ struct AVAESCTR;
>   */
>  
>  typedef struct MOVStts {
> -    int count;
> +    unsigned int count;
>      int duration;
>  } MOVStts;
>  
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index 2de60b2159..9cfc860c18 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -2658,15 +2658,11 @@ static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom)
>  
>      for (i = 0; i < entries && !pb->eof_reached; i++) {
>          int sample_duration;
> -        int sample_count;
> +        unsigned int sample_count;
>  
>          sample_count=avio_rb32(pb);
>          sample_duration = avio_rb32(pb);
>  
> -        if (sample_count < 0) {
> -            av_log(c->fc, AV_LOG_ERROR, "Invalid sample_count=%d\n", sample_count);
> -            return AVERROR_INVALIDDATA;
> -        }
>          sc->stts_data[i].count= sample_count;
>          sc->stts_data[i].duration= sample_duration;
>  

Needs a complete description of the issue on the commit message. The
ticket number is rather useless. The commit message subject line should
follow the usual project conventions.

Regarding the actual change, did you check all users of the .count
field?
Pablo Montilla Sept. 28, 2017, 5:37 p.m. UTC | #2
Sorry, this is my first patch, so I'm learning how it's done. I'm new to git, and work on Windows, so everything is against me! 
Carl Eugen Hoyos Sept. 28, 2017, 9:49 p.m. UTC | #3
2017-09-28 17:11 GMT+02:00 Pablo Montilla <melkor@odyssey.com.uy>:
> ---
>  libavformat/isom.h | 2 +-
>  libavformat/mov.c  | 6 +-----
>  2 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/libavformat/isom.h b/libavformat/isom.h
> index fdd98c28f5..a32b92ccdd 100644
> --- a/libavformat/isom.h
> +++ b/libavformat/isom.h
> @@ -52,7 +52,7 @@ struct AVAESCTR;
>   */
>
>  typedef struct MOVStts {
> -    int count;
> +    unsigned int count;
>      int duration;
>  } MOVStts;
>
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index 2de60b2159..9cfc860c18 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -2658,15 +2658,11 @@ static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom)
>
>      for (i = 0; i < entries && !pb->eof_reached; i++) {
>          int sample_duration;
> -        int sample_count;
> +        unsigned int sample_count;
>
>          sample_count=avio_rb32(pb);
>          sample_duration = avio_rb32(pb);
>
> -        if (sample_count < 0) {
> -            av_log(c->fc, AV_LOG_ERROR, "Invalid sample_count=%d\n", sample_count);
> -            return AVERROR_INVALIDDATA;
> -        }
>          sc->stts_data[i].count= sample_count;
>          sc->stts_data[i].duration= sample_duration;
>


Patch applied.

Thank you, Carl Eugen
diff mbox

Patch

diff --git a/libavformat/isom.h b/libavformat/isom.h
index fdd98c28f5..a32b92ccdd 100644
--- a/libavformat/isom.h
+++ b/libavformat/isom.h
@@ -52,7 +52,7 @@  struct AVAESCTR;
  */
 
 typedef struct MOVStts {
-    int count;
+    unsigned int count;
     int duration;
 } MOVStts;
 
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 2de60b2159..9cfc860c18 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2658,15 +2658,11 @@  static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
     for (i = 0; i < entries && !pb->eof_reached; i++) {
         int sample_duration;
-        int sample_count;
+        unsigned int sample_count;
 
         sample_count=avio_rb32(pb);
         sample_duration = avio_rb32(pb);
 
-        if (sample_count < 0) {
-            av_log(c->fc, AV_LOG_ERROR, "Invalid sample_count=%d\n", sample_count);
-            return AVERROR_INVALIDDATA;
-        }
         sc->stts_data[i].count= sample_count;
         sc->stts_data[i].duration= sample_duration;