1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

libdm: report fix memleak on error path

When _alloc_selection_node() fails, rh should be destroyed.

Use 'bad:' label since we have goto_bad with stack embeded.
This commit is contained in:
Zdenek Kabelac 2014-11-22 22:40:40 +01:00
parent 8eb111dfb8
commit 678cc4e375

View File

@ -2849,24 +2849,24 @@ struct dm_report *dm_report_init_with_selection(uint32_t *report_types,
}
if (!(root = _alloc_selection_node(rh->mem, SEL_OR)))
return_0;
goto_bad;
if (!_parse_or_ex(rh, selection, &fin, root))
goto error;
goto_bad;
next = _skip_space(fin);
if (*next) {
log_error("Expecting logical operator");
log_error(_sel_syntax_error_at_msg, next);
log_error(_sel_help_ref_msg);
goto error;
goto bad;
}
_dm_report_init_update_types(rh, report_types);
rh->selection_root = root;
return rh;
error:
bad:
dm_report_free(rh);
return NULL;
}