Skip to content

Commit 2085414

Browse files
Mikhail Galaninbd808
authored andcommitted
Fixed memory release on error handling
1 parent d9803e6 commit 2085414

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

parse.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,7 @@ void handle_mapping(parser_state_t *state, zval *retval)
467467
state->parser.mark.line + 1,
468468
state->parser.mark.column + 1
469469
);
470+
zval_ptr_dtor(&value);
470471
break;
471472
}
472473
}
@@ -518,8 +519,10 @@ void handle_sequence (parser_state_t *state, zval *retval) {
518519
}
519520

520521
if (YAML_SEQUENCE_END_EVENT != state->event.type) {
521-
//TODO Sean-Der
522+
zval_ptr_dtor(retval);
522523
ZVAL_UNDEF(retval);
524+
goto done;
525+
//TODO Sean-Der
523526
//zval_ptr_dtor(&retval);
524527
//retval = NULL;
525528
}
@@ -528,13 +531,15 @@ void handle_sequence (parser_state_t *state, zval *retval) {
528531
/* apply callbacks to the collected node */
529532
if (Y_FILTER_FAILURE == apply_filter(
530533
retval, src_event, state->callbacks)) {
531-
//TODO Sean-Der
534+
zval_ptr_dtor(&retval);
532535
ZVAL_UNDEF(retval);
533-
//zval_ptr_dtor(&retval);
536+
goto done;
537+
//TODO Sean-Der
534538
//retval = NULL;
535539
}
536540
}
537541

542+
done:
538543
yaml_event_delete(&src_event);
539544
}
540545
/* }}} */

0 commit comments

Comments
 (0)