From 648b6866b334f8f9e737b0e688d1ad07b37d8c64 Mon Sep 17 00:00:00 2001 From: Fahnenfluchtige Date: Wed, 5 Feb 2025 21:17:39 +0300 Subject: [PATCH 1/3] Fixing ngx_rtmp_receive_amf error-checking --- ngx_rtmp_relay_module.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ngx_rtmp_relay_module.c b/ngx_rtmp_relay_module.c index b0f5fecc1..6b55af75f 100644 --- a/ngx_rtmp_relay_module.c +++ b/ngx_rtmp_relay_module.c @@ -1289,11 +1289,17 @@ ngx_rtmp_relay_on_status(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h, ngx_memzero(&v, sizeof(v)); if (h->type == NGX_RTMP_MSG_AMF_META) { - ngx_rtmp_receive_amf(s, in, in_elts_meta, - sizeof(in_elts_meta) / sizeof(in_elts_meta[0])); + if (ngx_rtmp_receive_amf(s, in, in_elts_meta, + sizeof(in_elts_meta) / sizeof(in_elts_meta[0])) != NGX_OK) + { + return NGX_ERROR; + } } else { - ngx_rtmp_receive_amf(s, in, in_elts, - sizeof(in_elts) / sizeof(in_elts[0])); + if (ngx_rtmp_receive_amf(s, in, in_elts, + sizeof(in_elts) / sizeof(in_elts[0])) != NGX_OK) + { + return NGX_ERROR; + } } ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0, From fe6a8f889267a53a26f9d508e18ebbcc27ce4b30 Mon Sep 17 00:00:00 2001 From: Fahnenfluchtige Date: Wed, 5 Feb 2025 21:21:10 +0300 Subject: [PATCH 2/3] Adding error-logging --- ngx_rtmp_relay_module.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ngx_rtmp_relay_module.c b/ngx_rtmp_relay_module.c index 6b55af75f..9b2d1cf82 100644 --- a/ngx_rtmp_relay_module.c +++ b/ngx_rtmp_relay_module.c @@ -1292,12 +1292,18 @@ ngx_rtmp_relay_on_status(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h, if (ngx_rtmp_receive_amf(s, in, in_elts_meta, sizeof(in_elts_meta) / sizeof(in_elts_meta[0])) != NGX_OK) { + ngx_log_error(NGX_LOG_ERR, s->connection->log, 0, + "relay: failed to parse AMF message"); + return NGX_ERROR; } } else { if (ngx_rtmp_receive_amf(s, in, in_elts, sizeof(in_elts) / sizeof(in_elts[0])) != NGX_OK) { + ngx_log_error(NGX_LOG_ERR, s->connection->log, 0, + "relay: failed to parse AMF metadata"); + return NGX_ERROR; } } From ef87a606dd900f5985865760a9b8a7374ed0de27 Mon Sep 17 00:00:00 2001 From: Fahnenfluchtige Date: Wed, 5 Feb 2025 21:38:06 +0300 Subject: [PATCH 3/3] Little fix --- ngx_rtmp_relay_module.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ngx_rtmp_relay_module.c b/ngx_rtmp_relay_module.c index 9b2d1cf82..13b9bbaed 100644 --- a/ngx_rtmp_relay_module.c +++ b/ngx_rtmp_relay_module.c @@ -1293,8 +1293,8 @@ ngx_rtmp_relay_on_status(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h, sizeof(in_elts_meta) / sizeof(in_elts_meta[0])) != NGX_OK) { ngx_log_error(NGX_LOG_ERR, s->connection->log, 0, - "relay: failed to parse AMF message"); - + "relay: failed to parse AMF metadata"); + return NGX_ERROR; } } else { @@ -1302,7 +1302,7 @@ ngx_rtmp_relay_on_status(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h, sizeof(in_elts) / sizeof(in_elts[0])) != NGX_OK) { ngx_log_error(NGX_LOG_ERR, s->connection->log, 0, - "relay: failed to parse AMF metadata"); + "relay: failed to parse AMF message"); return NGX_ERROR; }