Skip to content

Commit 4577390

Browse files
committed
Sanitize credentials on websocket error messages
1 parent 34b103b commit 4577390

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

internal/api/ws/ws.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"strings"
99
"sync"
1010
"time"
11+
"regexp"
1112

1213
"github.com/AlexxIT/go2rtc/internal/api"
1314
"github.com/AlexxIT/go2rtc/internal/app"
@@ -132,7 +133,11 @@ func apiWS(w http.ResponseWriter, r *http.Request) {
132133
if handler := wsHandlers[msg.Type]; handler != nil {
133134
go func() {
134135
if err = handler(tr, msg); err != nil {
135-
tr.Write(&Message{Type: "error", Value: msg.Type + ": " + err.Error()})
136+
// Some streams such as ffmpeg might return credentials on error messages
137+
errMsg := err.Error()
138+
sanitizer := regexp.MustCompile(`(\w+)://(.*)@`)
139+
errMsg = sanitizer.ReplaceAllString(errMsg, "$1://******@")
140+
tr.Write(&Message{Type: "error", Value: msg.Type + ": " + errMsg})
136141
}
137142
}()
138143
}

0 commit comments

Comments
 (0)