X-Git-Url: http://andersk.mit.edu/gitweb/libyaml.git/blobdiff_plain/0f400264da7f8230f00688a666132c861939906e..aa6f0e8a0a8257181e428c8af720d98e964f69d9:/src/api.c diff --git a/src/api.c b/src/api.c index ee170d8..e793b08 100644 --- a/src/api.c +++ b/src/api.c @@ -118,7 +118,12 @@ yaml_string_join( YAML_DECLARE(int) yaml_stack_extend(void **start, void **top, void **end) { - void *new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2); + void *new_start; + + if ((char *)*end - (char *)*start >= INT_MAX / 2) + return 0; + + new_start = yaml_realloc(*start, ((char *)*end - (char *)*start)*2); if (!new_start) return 0; @@ -1117,13 +1122,8 @@ error: YAML_DECLARE(void) yaml_document_delete(yaml_document_t *document) { - struct { - yaml_error_type_t error; - } context; yaml_tag_directive_t *tag_directive; - context.error = YAML_NO_ERROR; /* Eliminate a compliler warning. */ - assert(document); /* Non-NULL document object is expected. */ while (!STACK_EMPTY(&context, document->nodes)) {