diff --git a/ngx_rtmp_relay_module.c b/ngx_rtmp_relay_module.c index b0f5fecc1..13b9bbaed 100644 --- a/ngx_rtmp_relay_module.c +++ b/ngx_rtmp_relay_module.c @@ -1289,11 +1289,23 @@ 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) + { + ngx_log_error(NGX_LOG_ERR, s->connection->log, 0, + "relay: failed to parse AMF metadata"); + + 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) + { + ngx_log_error(NGX_LOG_ERR, s->connection->log, 0, + "relay: failed to parse AMF message"); + + return NGX_ERROR; + } } ngx_log_debug3(NGX_LOG_DEBUG_RTMP, s->connection->log, 0,