In cil_resolve_ast, unordered_classorder_lists is a list of cil_ordered_list. It needs to be destroyed with __cil_ordered_lists_destroy() to free all associated memory. This has been tested with the following policy: (class CLASS1 ()) (class CLASS2 ()) (classorder (unordered CLASS1)) (classorder (CLASS2)) This memory leak has been found by running clang's Address Sanitizer on a set of policies generated by American Fuzzy Lop. Signed-off-by: Nicolas Iooss <nicolas.iooss@xxxxxxx> --- libsepol/cil/src/cil_resolve_ast.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libsepol/cil/src/cil_resolve_ast.c b/libsepol/cil/src/cil_resolve_ast.c index 6628dc4d4b30..5e5298d98e61 100644 --- a/libsepol/cil/src/cil_resolve_ast.c +++ b/libsepol/cil/src/cil_resolve_ast.c @@ -3936,8 +3936,8 @@ exit: __cil_ordered_lists_destroy(&extra_args.classorder_lists); __cil_ordered_lists_destroy(&extra_args.catorder_lists); __cil_ordered_lists_destroy(&extra_args.sensitivityorder_lists); + __cil_ordered_lists_destroy(&extra_args.unordered_classorder_lists); cil_list_destroy(&extra_args.in_list, CIL_FALSE); - cil_list_destroy(&extra_args.unordered_classorder_lists, CIL_FALSE); return rc; } -- 2.11.1 _______________________________________________ Selinux mailing list Selinux@xxxxxxxxxxxxx To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx. To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.