mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RTC: Fix crash when pkt->payload() if pkt is nullptr (#2751). v4.0.199
This commit is contained in:
parent
e2078bbd17
commit
ff8657e1c5
3 changed files with 10 additions and 1 deletions
|
@ -8,6 +8,7 @@ The changelog for SRS.
|
||||||
|
|
||||||
## SRS 4.0 Changelog
|
## SRS 4.0 Changelog
|
||||||
|
|
||||||
|
* v4.0, 2021-11-25, Merge [#2751](https://github.com/ossrs/srs/pull/2751): RTC: Fix crash when pkt->payload() if pkt is nullptr (#2751). v4.0.199
|
||||||
* v4.0, 2021-11-15, For [#1708](https://github.com/ossrs/srs/pull/1708): ST: Print log when multiple thread stop one coroutine. (#1708). v4.0.198
|
* v4.0, 2021-11-15, For [#1708](https://github.com/ossrs/srs/pull/1708): ST: Print log when multiple thread stop one coroutine. (#1708). v4.0.198
|
||||||
* v4.0, 2021-11-14, Merge [#2732](https://github.com/ossrs/srs/pull/2732): WebRTC: Fail to publish RTC automatically for HTML5. (#2732). v4.0.197
|
* v4.0, 2021-11-14, Merge [#2732](https://github.com/ossrs/srs/pull/2732): WebRTC: Fail to publish RTC automatically for HTML5. (#2732). v4.0.197
|
||||||
* v4.0, 2021-11-13, Merge [#2729](https://github.com/ossrs/srs/pull/2729): RTC: check audio track exist when negotiate (#2729). v4.0.196
|
* v4.0, 2021-11-13, Merge [#2729](https://github.com/ossrs/srs/pull/2729): RTC: check audio track exist when negotiate (#2729). v4.0.196
|
||||||
|
|
|
@ -1567,6 +1567,10 @@ srs_error_t SrsRtmpFromRtcBridger::packet_video_rtmp(const uint16_t start, const
|
||||||
uint16_t sn = start + i;
|
uint16_t sn = start + i;
|
||||||
uint16_t index = cache_index(sn);
|
uint16_t index = cache_index(sn);
|
||||||
SrsRtpPacket* pkt = cache_video_pkts_[index].pkt;
|
SrsRtpPacket* pkt = cache_video_pkts_[index].pkt;
|
||||||
|
|
||||||
|
// fix crash when pkt->payload() if pkt is nullptr;
|
||||||
|
if (!pkt) continue;
|
||||||
|
|
||||||
// calculate nalu len
|
// calculate nalu len
|
||||||
SrsRtpFUAPayload2* fua_payload = dynamic_cast<SrsRtpFUAPayload2*>(pkt->payload());
|
SrsRtpFUAPayload2* fua_payload = dynamic_cast<SrsRtpFUAPayload2*>(pkt->payload());
|
||||||
if (fua_payload && fua_payload->size > 0) {
|
if (fua_payload && fua_payload->size > 0) {
|
||||||
|
@ -1624,6 +1628,10 @@ srs_error_t SrsRtmpFromRtcBridger::packet_video_rtmp(const uint16_t start, const
|
||||||
for (uint16_t i = 0; i < cnt; ++i) {
|
for (uint16_t i = 0; i < cnt; ++i) {
|
||||||
uint16_t index = cache_index((start + i));
|
uint16_t index = cache_index((start + i));
|
||||||
SrsRtpPacket* pkt = cache_video_pkts_[index].pkt;
|
SrsRtpPacket* pkt = cache_video_pkts_[index].pkt;
|
||||||
|
|
||||||
|
// fix crash when pkt->payload() if pkt is nullptr;
|
||||||
|
if (!pkt) continue;
|
||||||
|
|
||||||
cache_video_pkts_[index].in_use = false;
|
cache_video_pkts_[index].in_use = false;
|
||||||
cache_video_pkts_[index].pkt = NULL;
|
cache_video_pkts_[index].pkt = NULL;
|
||||||
cache_video_pkts_[index].ts = 0;
|
cache_video_pkts_[index].ts = 0;
|
||||||
|
|
|
@ -9,6 +9,6 @@
|
||||||
|
|
||||||
#define VERSION_MAJOR 4
|
#define VERSION_MAJOR 4
|
||||||
#define VERSION_MINOR 0
|
#define VERSION_MINOR 0
|
||||||
#define VERSION_REVISION 198
|
#define VERSION_REVISION 199
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue