From a40b3a0e80eb8f0d8291d52dc50a4182f1ac8749 Mon Sep 17 00:00:00 2001 From: Matt Steele Date: Mon, 16 Nov 2020 22:14:22 -0600 Subject: [PATCH] Check if inbound details properly set before use (#365) * Check if inbound details properly set before use Fixes #340 * Only parse setDataFrame messages * Remove unneeded guard --- core/rtmp/utils.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/rtmp/utils.go b/core/rtmp/utils.go index c4abcaf95..e6c166472 100644 --- a/core/rtmp/utils.go +++ b/core/rtmp/utils.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "regexp" + "strings" "github.com/nareix/joy5/format/flv/flvio" "github.com/owncast/owncast/models" @@ -12,6 +13,9 @@ import ( func getInboundDetailsFromMetadata(metadata []interface{}) (models.RTMPStreamMetadata, error) { metadataComponentsString := fmt.Sprintf("%+v", metadata) + if !strings.Contains(metadataComponentsString, "@setDataFrame") { + return models.RTMPStreamMetadata{}, errors.New("Not a setDataFrame message") + } re := regexp.MustCompile(`\{(.*?)\}`) submatchall := re.FindAllString(metadataComponentsString, 1)