Fix nil pointer dereference segfault when passing "null" config json to cloudflared tunnel ingress validate

This commit is contained in:
Sam Cook 2023-09-20 01:10:53 +01:00
parent 6d1d91d9f9
commit 661e471c32
2 changed files with 6 additions and 1 deletions

View File

@ -85,7 +85,7 @@ type Ingress struct {
// ParseIngress parses ingress rules, but does not send HTTP requests to the origins.
func ParseIngress(conf *config.Configuration) (Ingress, error) {
if len(conf.Ingress) == 0 {
if conf == nil || len(conf.Ingress) == 0 {
return Ingress{}, ErrNoIngressRules
}
return validateIngress(conf.Ingress, originRequestFromConfig(conf.OriginRequest))

View File

@ -43,6 +43,11 @@ ingress:
require.Equal(t, "https", s.scheme)
}
func TestParseIngressNilConfig(t *testing.T) {
_, err := ParseIngress(nil)
require.Error(t, err)
}
func TestParseIngress(t *testing.T) {
localhost8000 := MustParseURL(t, "https://localhost:8000")
localhost8001 := MustParseURL(t, "https://localhost:8001")