diff --git a/Units/parser-openapi.r/crash-test.d/README b/Units/parser-openapi.r/crash-test.d/README new file mode 100644 index 0000000000..0d2b11a720 --- /dev/null +++ b/Units/parser-openapi.r/crash-test.d/README @@ -0,0 +1,6 @@ +This is a crash test. +The code is derived from puppet/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml. + + REPO=https://github.com/puppetlabs/puppet.git + ALIGNMENT=6.2.0 + LANGUAGES=Ruby,PuppetManifest diff --git a/Units/parser-openapi.r/crash-test.d/input.yml b/Units/parser-openapi.r/crash-test.d/input.yml new file mode 100644 index 0000000000..c343a51c8a --- /dev/null +++ b/Units/parser-openapi.r/crash-test.d/input.yml @@ -0,0 +1 @@ +{x: diff --git a/parsers/openapi.c b/parsers/openapi.c index e9d34e2152..690f46228b 100644 --- a/parsers/openapi.c +++ b/parsers/openapi.c @@ -271,9 +271,12 @@ static void openapiPlayStateMachine (struct sOpenAPISubparser *openapi, switch (openapi->play_detection_state) { case DSTAT_LAST_KEY: - openapi->type_stack->key = parseKey(token); TRACE_PRINT(" key: %s\n", (char*)token->data.scalar.value); - handleKey (openapi, token); + if (openapi->type_stack) + { + openapi->type_stack->key = parseKey(token); + handleKey (openapi, token); + } break; case DSTAT_LAST_VALUE: TRACE_PRINT(" value: %s\n", (char*)token->data.scalar.value);