[FFmpeg-devel] [PATCH 1/3] avformat/rtsp: Fix floating point exception for low min/max port range
Andriy Gelman
andriy.gelman at gmail.com
Sun Jul 4 18:07:39 EEST 2021
Hi Zhili,
On Sun, 04. Jul 19:00, "zhilizhao(赵志立)" wrote:
>
>
> > On Apr 4, 2021, at 11:36 PM, Andriy Gelman <andriy.gelman at gmail.com> wrote:
> >
> > From: Andriy Gelman <andriy.gelman at gmail.com>
> >
> > Fixed by setting port offset to zero when it cannot be computed.
> >
> > To reproduce:
> > $ ffmpeg -min_port 32000 -max_port 32001 -i rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov -f null -
> > [1] 303871 floating point exception (core dumped)
> >
> > Signed-off-by: Andriy Gelman <andriy.gelman at gmail.com>
> > ---
> > libavformat/rtsp.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
> > index 25bdf475b3..76efbf42cd 100644
> > --- a/libavformat/rtsp.c
> > +++ b/libavformat/rtsp.c
> > @@ -1446,7 +1446,7 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
> > int lower_transport, const char *real_challenge)
> > {
> > RTSPState *rt = s->priv_data;
> > - int rtx = 0, j, i, err, interleave = 0, port_off;
> > + int rtx = 0, j, i, err, interleave = 0, port_off = 0;
> > RTSPStream *rtsp_st;
> > RTSPMessageHeader reply1, *reply = &reply1;
> > char cmd[MAX_URL_SIZE];
> > @@ -1465,9 +1465,11 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
> > /* Choose a random starting offset within the first half of the
> > * port range, to allow for a number of ports to try even if the offset
> > * happens to be at the end of the random range. */
> > + if (rt->rtp_port_max - rt->rtp_port_min > 1) {
> > port_off = av_get_random_seed() % ((rt->rtp_port_max - rt->rtp_port_min)/2);
> > /* even random offset */
> > port_off -= port_off & 0x01;
> > + }
>
> (rt->rtp_port_max - rt->rtp_port_min)/2 should larger than one, otherwise port_off is always zero.
>
> So how about `if (rt->rtp_port_max - rt->rtp_port_min >= 4)`?
>
Sure, this way works too. I don't mind either way.
Thanks,
--
Andriy
More information about the ffmpeg-devel
mailing list