]> andersk Git - libyaml.git/blobdiff - src/loader.c
Fixed pointer arithmetic overflow when calculating the position of a potential simple...
[libyaml.git] / src / loader.c
index 7ee0dbdf9a9d1b1c20ba8210e37fe4baf94554d7..9d3d912663c3282e5c731ebf9e5587a1111ec79b 100644 (file)
@@ -13,11 +13,11 @@ yaml_parser_load(yaml_parser_t *parser, yaml_document_t *document);
  */
 
 static int
-yaml_parser_set_parser_error(yaml_parser_t *parser,
+yaml_parser_set_composer_error(yaml_parser_t *parser,
         const char *problem, yaml_mark_t problem_mark);
 
 static int
-yaml_parser_set_parser_error_context(yaml_parser_t *parser,
+yaml_parser_set_composer_error_context(yaml_parser_t *parser,
         const char *context, yaml_mark_t context_mark,
         const char *problem, yaml_mark_t problem_mark);
 
@@ -225,12 +225,15 @@ static int
 yaml_parser_register_anchor(yaml_parser_t *parser,
         int index, yaml_char_t *anchor)
 {
-    yaml_alias_data_t data = { anchor, index,
-        parser->document->nodes.start[index-1].start_mark };
+    yaml_alias_data_t data;
     yaml_alias_data_t *alias_data;
 
     if (!anchor) return 1;
 
+    data.anchor = anchor;
+    data.index = index;
+    data.mark = parser->document->nodes.start[index-1].start_mark;
+
     for (alias_data = parser->aliases.start;
             alias_data != parser->aliases.top; alias_data ++) {
         if (strcmp((char *)alias_data->anchor, (char *)anchor) == 0) {
@@ -285,7 +288,7 @@ yaml_parser_load_scalar(yaml_parser_t *parser, yaml_event_t *first_event)
 
     if (!tag || strcmp((char *)tag, "!") == 0) {
         yaml_free(tag);
-        tag = yaml_strdup(YAML_DEFAULT_SCALAR_TAG);
+        tag = yaml_strdup((yaml_char_t *)YAML_DEFAULT_SCALAR_TAG);
         if (!tag) goto error;
     }
 
@@ -328,7 +331,7 @@ yaml_parser_load_sequence(yaml_parser_t *parser, yaml_event_t *first_event)
 
     if (!tag || strcmp((char *)tag, "!") == 0) {
         yaml_free(tag);
-        tag = yaml_strdup(YAML_DEFAULT_SEQUENCE_TAG);
+        tag = yaml_strdup((yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG);
         if (!tag) goto error;
     }
 
@@ -386,7 +389,7 @@ yaml_parser_load_mapping(yaml_parser_t *parser, yaml_event_t *first_event)
 
     if (!tag || strcmp((char *)tag, "!") == 0) {
         yaml_free(tag);
-        tag = yaml_strdup(YAML_DEFAULT_MAPPING_TAG);
+        tag = yaml_strdup((yaml_char_t *)YAML_DEFAULT_MAPPING_TAG);
         if (!tag) goto error;
     }
 
This page took 0.033042 seconds and 4 git commands to generate.