diff mbox series

[FFmpeg-devel] lavu/fifo: fix regression

Message ID 20220208054734.14166-1-haihao.xiang@intel.com
State Accepted
Commit 2727ff069e856c8fd098ddb8c26f42ec3b54a252
Headers show
Series [FFmpeg-devel] lavu/fifo: fix regression | expand

Checks

Context Check Description
andriy/configure_aarch64_jetson warning Failed to run configure
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_ppc success Make finished
andriy/make_fate_ppc success Make fate finished

Commit Message

Xiang, Haihao Feb. 8, 2022, 5:47 a.m. UTC
From: Haihao Xiang <haihao.xiang@intel.com>

offset_w might be updated after growing the FIFO

Fix ticket #9630

Tested-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: mkver
Reviewed-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
---
 libavutil/fifo.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Eoff, Ullysses A Feb. 8, 2022, 5:48 p.m. UTC | #1
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Xiang, Haihao
> Sent: Monday, February 7, 2022 9:48 PM
> To: ffmpeg-devel@ffmpeg.org
> Cc: Xiang, Haihao <haihao.xiang@intel.com>
> Subject: [FFmpeg-devel] [PATCH] lavu/fifo: fix regression
> 
> From: Haihao Xiang <haihao.xiang@intel.com>
> 
> offset_w might be updated after growing the FIFO
> 
> Fix ticket #9630
> 
> Tested-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
> Reviewed-by: mkver
> Reviewed-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
> ---
>  libavutil/fifo.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/libavutil/fifo.c b/libavutil/fifo.c
> index 0af0154945..02e0ec3f0d 100644
> --- a/libavutil/fifo.c
> +++ b/libavutil/fifo.c
> @@ -147,13 +147,15 @@ static int fifo_write_common(AVFifo *f, const uint8_t *buf, size_t *nb_elems,
>                               AVFifoCB read_cb, void *opaque)
>  {
>      size_t to_write = *nb_elems;
> -    size_t offset_w = f->offset_w;
> +    size_t offset_w;
>      int         ret = 0;
> 
>      ret = fifo_check_space(f, to_write);
>      if (ret < 0)
>          return ret;
> 
> +    offset_w = f->offset_w;
> +
>      while (to_write > 0) {
>          size_t    len = FFMIN(f->nb_elems - offset_w, to_write);
>          uint8_t *wptr = f->buffer + offset_w * f->elem_size;
> --
> 2.17.1
> 

LGTM

> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Xiang, Haihao Feb. 9, 2022, 3:38 a.m. UTC | #2
On Tue, 2022-02-08 at 17:48 +0000, Eoff, Ullysses A wrote:
> > -----Original Message-----
> > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Xiang,
> > Haihao
> > Sent: Monday, February 7, 2022 9:48 PM
> > To: ffmpeg-devel@ffmpeg.org
> > Cc: Xiang, Haihao <haihao.xiang@intel.com>
> > Subject: [FFmpeg-devel] [PATCH] lavu/fifo: fix regression
> > 
> > From: Haihao Xiang <haihao.xiang@intel.com>
> > 
> > offset_w might be updated after growing the FIFO
> > 
> > Fix ticket #9630
> > 
> > Tested-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
> > Reviewed-by: mkver
> > Reviewed-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
> > Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
> > ---
> >  libavutil/fifo.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/libavutil/fifo.c b/libavutil/fifo.c
> > index 0af0154945..02e0ec3f0d 100644
> > --- a/libavutil/fifo.c
> > +++ b/libavutil/fifo.c
> > @@ -147,13 +147,15 @@ static int fifo_write_common(AVFifo *f, const uint8_t
> > *buf, size_t *nb_elems,
> >                               AVFifoCB read_cb, void *opaque)
> >  {
> >      size_t to_write = *nb_elems;
> > -    size_t offset_w = f->offset_w;
> > +    size_t offset_w;
> >      int         ret = 0;
> > 
> >      ret = fifo_check_space(f, to_write);
> >      if (ret < 0)
> >          return ret;
> > 
> > +    offset_w = f->offset_w;
> > +
> >      while (to_write > 0) {
> >          size_t    len = FFMIN(f->nb_elems - offset_w, to_write);
> >          uint8_t *wptr = f->buffer + offset_w * f->elem_size;
> > --
> > 2.17.1
> > 
> 
> LGTM
> 

Applied, thx

> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > 
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff mbox series

Patch

diff --git a/libavutil/fifo.c b/libavutil/fifo.c
index 0af0154945..02e0ec3f0d 100644
--- a/libavutil/fifo.c
+++ b/libavutil/fifo.c
@@ -147,13 +147,15 @@  static int fifo_write_common(AVFifo *f, const uint8_t *buf, size_t *nb_elems,
                              AVFifoCB read_cb, void *opaque)
 {
     size_t to_write = *nb_elems;
-    size_t offset_w = f->offset_w;
+    size_t offset_w;
     int         ret = 0;
 
     ret = fifo_check_space(f, to_write);
     if (ret < 0)
         return ret;
 
+    offset_w = f->offset_w;
+
     while (to_write > 0) {
         size_t    len = FFMIN(f->nb_elems - offset_w, to_write);
         uint8_t *wptr = f->buffer + offset_w * f->elem_size;