From mboxrd@z Thu Jan 1 00:00:00 1970 Subject: Re: [PATCH 5/6] libsepol/cil: Remove path field from cil_tree_node struct To: Steve Lawrence , selinux@tycho.nsa.gov References: <1461075965-17161-1-git-send-email-jwcart2@tycho.nsa.gov> <1461075965-17161-6-git-send-email-jwcart2@tycho.nsa.gov> <571796AD.3090000@tresys.com> From: James Carter Message-ID: <5717DA37.3010408@tycho.nsa.gov> Date: Wed, 20 Apr 2016 15:36:23 -0400 MIME-Version: 1.0 In-Reply-To: <571796AD.3090000@tresys.com> Content-Type: text/plain; charset=windows-1252; format=flowed List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: On 04/20/2016 10:48 AM, Steve Lawrence wrote: > On 04/19/2016 10:26 AM, James Carter wrote: >> Remove path field from cil_tree_node struct and all references >> to it in CIL. This will reduce memory usage by 5%. >> >> Signed-off-by: James Carter >> --- >> libsepol/cil/src/cil_binary.c | 14 +++++++++++++- >> libsepol/cil/src/cil_build_ast.c | 2 -- >> libsepol/cil/src/cil_copy_ast.c | 1 - >> libsepol/cil/src/cil_parser.c | 23 +++++++++++------------ >> libsepol/cil/src/cil_tree.c | 1 - >> libsepol/cil/src/cil_tree.h | 1 - >> 6 files changed, 24 insertions(+), 18 deletions(-) >> >> diff --git a/libsepol/cil/src/cil_binary.c b/libsepol/cil/src/cil_binary.c >> index 0a98ecd..9db42d5 100644 >> --- a/libsepol/cil/src/cil_binary.c >> +++ b/libsepol/cil/src/cil_binary.c >> @@ -4227,6 +4227,9 @@ exit: >> static avrule_t *__cil_init_sepol_avrule(uint32_t kind, struct cil_tree_node *node) >> { >> avrule_t *avrule; >> + struct cil_tree_node *source_node; >> + char *source_path; >> + int is_cil; >> >> avrule = cil_malloc(sizeof(avrule_t)); >> avrule->specified = kind; >> @@ -4235,8 +4238,17 @@ static avrule_t *__cil_init_sepol_avrule(uint32_t kind, struct cil_tree_node *no >> __cil_init_sepol_type_set(&avrule->ttypes); >> avrule->perms = NULL; >> avrule->line = node->line; >> - avrule->source_filename = node->path; >> + >> + avrule->source_filename = NULL; >> avrule->source_line = node->line; >> + source_node = cil_tree_get_next_path(node, &source_path, &is_cil); >> + if (source_node) { >> + avrule->source_filename = source_path; >> + if (!is_cil) { >> + avrule->source_line = node->hll_line; > > Can we not use ->line instead of ->hll_live when is_cil is true? > Actually, neither source_filename nor source_line will be used because CIL is using its own functions to print error messages. >> + } >> + } >> + >> avrule->next = NULL; >> return avrule; >> } -- James Carter National Security Agency