Fix nil pointer dereference segfault when passing "null" config json to cloudflared tunnel ingress validate
This commit is contained in:
parent
6d1d91d9f9
commit
661e471c32
|
@ -85,7 +85,7 @@ type Ingress struct {
|
||||||
|
|
||||||
// ParseIngress parses ingress rules, but does not send HTTP requests to the origins.
|
// ParseIngress parses ingress rules, but does not send HTTP requests to the origins.
|
||||||
func ParseIngress(conf *config.Configuration) (Ingress, error) {
|
func ParseIngress(conf *config.Configuration) (Ingress, error) {
|
||||||
if len(conf.Ingress) == 0 {
|
if conf == nil || len(conf.Ingress) == 0 {
|
||||||
return Ingress{}, ErrNoIngressRules
|
return Ingress{}, ErrNoIngressRules
|
||||||
}
|
}
|
||||||
return validateIngress(conf.Ingress, originRequestFromConfig(conf.OriginRequest))
|
return validateIngress(conf.Ingress, originRequestFromConfig(conf.OriginRequest))
|
||||||
|
|
|
@ -43,6 +43,11 @@ ingress:
|
||||||
require.Equal(t, "https", s.scheme)
|
require.Equal(t, "https", s.scheme)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestParseIngressNilConfig(t *testing.T) {
|
||||||
|
_, err := ParseIngress(nil)
|
||||||
|
require.Error(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
func TestParseIngress(t *testing.T) {
|
func TestParseIngress(t *testing.T) {
|
||||||
localhost8000 := MustParseURL(t, "https://localhost:8000")
|
localhost8000 := MustParseURL(t, "https://localhost:8000")
|
||||||
localhost8001 := MustParseURL(t, "https://localhost:8001")
|
localhost8001 := MustParseURL(t, "https://localhost:8001")
|
||||||
|
|
Loading…
Reference in New Issue