On Tue, Dec 07, 2021 at 11:30:11AM +0200, Martin Storsjö wrote:
> On Mon, 6 Dec 2021, lance.lmw...@gmail.com wrote:
> 
> > From: Limin Wang <lance.lmw...@gmail.com>
> > 
> > Signed-off-by: Limin Wang <lance.lmw...@gmail.com>
> > ---
> > libavformat/rtsp.c | 7 ++-----
> > 1 file changed, 2 insertions(+), 5 deletions(-)
> > 
> > diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
> > index 3e4a68a..b3d1e91 100644
> > --- a/libavformat/rtsp.c
> > +++ b/libavformat/rtsp.c
> > @@ -1240,7 +1240,7 @@ start:
> >         av_strlcpy(rt->session_id, reply->session_id, 
> > sizeof(rt->session_id));
> > 
> >     content_length = reply->content_length;
> > -    if (content_length > 0) {
> > +    if (content_ptr && content_length > 0) {
> >         /* leave some room for a trailing '\0' (useful for simple parsing) 
> > */
> >         content = av_malloc(content_length + 1);
> >         if (!content)
> > @@ -1250,11 +1250,8 @@ start:
> >             return AVERROR(EIO);
> >         }
> >         content[content_length] = '\0';
> > -    }
> > -    if (content_ptr)
> >         *content_ptr = content;
> > -    else
> > -        av_freep(&content);
> > +    }
> 
> I don't think this is right.
> 
> If the reply that we read contain a body of contents, but the caller didn't
> pass any content_ptr, then we still need to read and consume the body of
> contents from the stream, even if we don't pass it to the caller. (Maybe we
> should warn in this case, that there was some potentially relevant data that
> the caller didn't care about?) But if we don't read it, like this patch
> does, we would end up desynced from the protocol stream.

Yes, I haven't realized your valid case, ignore this change anyway. 

> 
> // Martin
> 

-- 
Thanks,
Limin Wang
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to