1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

SRT: Fix srt2rtmp crash when streamid is too long(#2770) (#2786)

This commit is contained in:
akanchi 2021-12-27 11:14:50 +08:00 committed by GitHub
parent c7ea21d06a
commit f1a448bc6a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -15,6 +15,7 @@
#include <srs_app_config.hpp>
#include <srs_kernel_stream.hpp>
#include <list>
#include <sstream>
std::shared_ptr<srt2rtmp> srt2rtmp::s_srt2rtmp_ptr;
@ -258,8 +259,7 @@ rtmp_client::rtmp_client(std::string key_path):_key_path(key_path)
_appname = ret_vec[0];
_streamname = ret_vec[1];
}
char url_sz[128];
std::vector<std::string> ip_ports = _srs_config->get_listens();
int port = 0;
std::string ip;
@ -271,22 +271,24 @@ rtmp_client::rtmp_client(std::string key_path):_key_path(key_path)
}
}
port = (port == 0) ? 1935 : port;
if (_vhost == DEF_VHOST) {
sprintf(url_sz, "rtmp://127.0.0.1:%d/%s/%s", port,
_appname.c_str(), _streamname.c_str());
} else {
sprintf(url_sz, "rtmp://127.0.0.1:%d/%s?vhost=%s/%s", port,
_appname.c_str(), _vhost.c_str(), _streamname.c_str());
std::stringstream ss;
ss << "rtmp://127.0.0.1";
ss << ":" << port;
ss << "/" << _appname;
if (_vhost != DEF_VHOST) {
ss << "?vhost=" << _vhost;
}
_url = url_sz;
ss << "/" << _streamname;
_url = ss.str();
_h264_sps_changed = false;
_h264_pps_changed = false;
_h264_sps_pps_sent = false;
_last_live_ts = now_ms();
srs_trace("rtmp client construct url:%s", url_sz);
srs_trace("rtmp client construct url:%s", _url.c_str());
}
rtmp_client::~rtmp_client() {