yml: destroy 'current' yaml event before erroring out

This commit is contained in:
Daniel Eklöf 2020-01-15 11:06:54 +01:00
parent 1a7b00054f
commit 3c9a08bf7f
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

5
yml.c
View file

@ -422,6 +422,7 @@ yml_load(FILE *yml, char **error)
if (err != YML_ERR_NONE) { if (err != YML_ERR_NONE) {
error_str = format_error(err, n, clone, NULL); error_str = format_error(err, n, clone, NULL);
yml_destroy(clone); yml_destroy(clone);
yaml_event_delete(&event);
goto err; goto err;
} }
@ -433,6 +434,7 @@ yml_load(FILE *yml, char **error)
error_str = format_error( error_str = format_error(
YML_ERR_INVALID_ANCHOR, n, NULL, YML_ERR_INVALID_ANCHOR, n, NULL,
(const char *)event.data.alias.anchor); (const char *)event.data.alias.anchor);
yaml_event_delete(&event);
goto err; goto err;
} }
break; break;
@ -448,6 +450,7 @@ yml_load(FILE *yml, char **error)
if (err != YML_ERR_NONE) { if (err != YML_ERR_NONE) {
error_str = format_error(err, n, new_scalar, NULL); error_str = format_error(err, n, new_scalar, NULL);
yml_destroy(new_scalar); yml_destroy(new_scalar);
yaml_event_delete(&event);
goto err; goto err;
} }
@ -468,6 +471,7 @@ yml_load(FILE *yml, char **error)
if (err != YML_ERR_NONE) { if (err != YML_ERR_NONE) {
error_str = format_error(err, n, new_list, NULL); error_str = format_error(err, n, new_list, NULL);
yml_destroy(new_list); yml_destroy(new_list);
yaml_event_delete(&event);
goto err; goto err;
} }
@ -496,6 +500,7 @@ yml_load(FILE *yml, char **error)
if (err != YML_ERR_NONE) { if (err != YML_ERR_NONE) {
error_str = format_error(err, n, new_dict, NULL); error_str = format_error(err, n, new_dict, NULL);
yml_destroy(new_dict); yml_destroy(new_dict);
yaml_event_delete(&event);
goto err; goto err;
} }