You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
avformat/rtsp: Set port_off to zero for low min/max port range
Fixes: $ 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) Reviewed-by: Martin Storsjö <martin@martin.st> Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
This commit is contained in:
@@ -1438,7 +1438,7 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
|
|||||||
int lower_transport, const char *real_challenge)
|
int lower_transport, const char *real_challenge)
|
||||||
{
|
{
|
||||||
RTSPState *rt = s->priv_data;
|
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;
|
RTSPStream *rtsp_st;
|
||||||
RTSPMessageHeader reply1, *reply = &reply1;
|
RTSPMessageHeader reply1, *reply = &reply1;
|
||||||
char cmd[MAX_URL_SIZE];
|
char cmd[MAX_URL_SIZE];
|
||||||
@@ -1457,9 +1457,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
|
/* 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
|
* 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. */
|
* happens to be at the end of the random range. */
|
||||||
|
if (rt->rtp_port_max - rt->rtp_port_min >= 4) {
|
||||||
port_off = av_get_random_seed() % ((rt->rtp_port_max - rt->rtp_port_min)/2);
|
port_off = av_get_random_seed() % ((rt->rtp_port_max - rt->rtp_port_min)/2);
|
||||||
/* even random offset */
|
/* even random offset */
|
||||||
port_off -= port_off & 0x01;
|
port_off -= port_off & 0x01;
|
||||||
|
}
|
||||||
|
|
||||||
for (j = rt->rtp_port_min + port_off, i = 0; i < rt->nb_rtsp_streams; ++i) {
|
for (j = rt->rtp_port_min + port_off, i = 0; i < rt->nb_rtsp_streams; ++i) {
|
||||||
char transport[MAX_URL_SIZE];
|
char transport[MAX_URL_SIZE];
|
||||||
|
Reference in New Issue
Block a user