nil pointer dereference triggered by cors_header setting #1059
Labels
kind/bug
Categorizes issue or PR as related to a bug.
needs-triage
Indicates an issue or PR lacks a `triage/foo` label and requires one.
Confirmation
Terraform and Cloudflare provider version
2.18.0
Affected resource(s)
cloudflare_access_application
Terraform configuration files
Debug output
No response
Panic output
panic: runtime error: invalid memory address or nil pointer dereference
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: [signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0xfc70a3]
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0:
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: goroutine 11614 [running]:
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare.convertCORSStructToSchema(0xc0004e7420, 0x0, 0xc, 0x110ef00, 0xc0005f7a00)
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare/resource_cloudflare_access_application.go:380 +0x63
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare.resourceCloudflareAccessApplicationRead(0xc0004e7420, 0x132fa00, 0xc000662180, 0xc0004e7420, 0x0)
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/cloudflare/terraform-provider-cloudflare/cloudflare/resource_cloudflare_access_application.go:225 +0x8f2
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk/helper/schema.(*Resource).RefreshWithoutUpgrade(0xc00022fa70, 0xc00100be50, 0x132fa00, 0xc000662180, 0xc0009054d0, 0x0, 0x0)
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk@v1.16.0/helper/schema/resource.go:460 +0x129
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk/internal/helper/plugin.(*GRPCProviderServer).ReadResource(0xc0009042b0, 0x1501640, 0xc00075e9f0, 0xc0009bbd40, 0xc0009042b0, 0xc00075e9f0, 0xc000179ba0)
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk@v1.16.0/internal/helper/plugin/grpc_provider.go:525 +0x3dd
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk/internal/tfplugin5._Provider_ReadResource_Handler(0x12ebca0, 0xc0009042b0, 0x1501640, 0xc00075e9f0, 0xc0009bbce0, 0x0, 0x1501640, 0xc00075e9f0, 0xc0004de000, 0x29b)
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: github.com/hashicorp/terraform-plugin-sdk@v1.16.0/internal/tfplugin5/tfplugin5.pb.go:3269 +0x214
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc.(*Server).processUnaryRPC(0xc00091c380, 0x150ce60, 0xc0005b5980, 0xc000c0c600, 0xc0009530b0, 0x1bf5510, 0x0, 0x0, 0x0)
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc@v1.30.0/server.go:1171 +0x522
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc.(*Server).handleStream(0xc00091c380, 0x150ce60, 0xc0005b5980, 0xc000c0c600, 0x0)
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc@v1.30.0/server.go:1494 +0xcc5
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc.(*Server).serveStreams.func1.2(0xc0000482b0, 0xc00091c380, 0x150ce60, 0xc0005b5980, 0xc000c0c600)
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc@v1.30.0/server.go:834 +0xa5
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: created by google.golang.org/grpc.(*Server).serveStreams.func1
2021-05-11T15:35:11.083Z [DEBUG] plugin.terraform-provider-cloudflare_v2.18.0: google.golang.org/grpc@v1.30.0/server.go:832 +0x1fd
Expected output
Trying to run a terraform plan with cors headers of
allow_all_origin=true
andallow_credential=true
should return with a syntax error to prevent it from being applied.Actual output
When running a plan for the resource above we would have expected a check to have stopped us. CORS headers are not supposed to allow both all origins and credentials (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin#syntax). We were not aware of this at the time so we got reasonable output of
when applying the resource above, we received an error in response:
So the API said no, however the terraform state must have committed the change as every subsequent plan returns
Until the resource is removed from the terraform state. After running
we are able to run plans/applies again
Steps to reproduce
plan
and see that this seems to be a syntactically valid resourceapply
and see an error showing a failure to applystate show
to see the state object was updated anywayplan
with debug on to see that plans are now blocked on a github.com/cloudflare/terraform-provider-cloudflare/cloudflare.convertCORSStructToSchema panicAdditional factoids
No response
References
No response
The text was updated successfully, but these errors were encountered: