Skip to content

Commit a4159ed

Browse files
committed
fix fuzzifier errors
1 parent 8a7a645 commit a4159ed

2 files changed

Lines changed: 36 additions & 0 deletions

File tree

src/spss/readstat_sav_parse_mr_name.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,5 +512,23 @@ readstat_error_t parse_mr_string(const char *line, mr_set_t **mr_sets, size_t *n
512512
(void)mr_parser_en_main;
513513

514514
cleanup:
515+
if (retval != READSTAT_OK && *mr_sets != NULL) {
516+
// Free all successfully parsed MR sets
517+
for (size_t i = 0; i < *n_mr_lines; i++) {
518+
if ((*mr_sets)[i].name != NULL) free((*mr_sets)[i].name);
519+
if ((*mr_sets)[i].label != NULL) free((*mr_sets)[i].label);
520+
if ((*mr_sets)[i].subvariables != NULL) {
521+
for (size_t j = 0; j < (*mr_sets)[i].num_subvars; j++) {
522+
if ((*mr_sets)[i].subvariables[j] != NULL) {
523+
free((*mr_sets)[i].subvariables[j]);
524+
}
525+
}
526+
free((*mr_sets)[i].subvariables);
527+
}
528+
}
529+
free(*mr_sets);
530+
*mr_sets = NULL;
531+
*n_mr_lines = 0;
532+
}
515533
return retval;
516534
}

src/spss/readstat_sav_parse_mr_name.rl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,5 +235,23 @@ readstat_error_t parse_mr_string(const char *line, mr_set_t **mr_sets, size_t *n
235235
(void)mr_parser_en_main;
236236

237237
cleanup:
238+
if (retval != READSTAT_OK && *mr_sets != NULL) {
239+
// Free all successfully parsed MR sets
240+
for (size_t i = 0; i < *n_mr_lines; i++) {
241+
if ((*mr_sets)[i].name != NULL) free((*mr_sets)[i].name);
242+
if ((*mr_sets)[i].label != NULL) free((*mr_sets)[i].label);
243+
if ((*mr_sets)[i].subvariables != NULL) {
244+
for (size_t j = 0; j < (*mr_sets)[i].num_subvars; j++) {
245+
if ((*mr_sets)[i].subvariables[j] != NULL) {
246+
free((*mr_sets)[i].subvariables[j]);
247+
}
248+
}
249+
free((*mr_sets)[i].subvariables);
250+
}
251+
}
252+
free(*mr_sets);
253+
*mr_sets = NULL;
254+
*n_mr_lines = 0;
255+
}
238256
return retval;
239257
}

0 commit comments

Comments
 (0)