From 3cdd4a4b0d7e92d31e3d47d8a36e3cc11585ea6d Mon Sep 17 00:00:00 2001 From: Manoj Gupta <manojgupta@google.com> Date: Tue, 1 Aug 2017 15:31:00 -0700 Subject: [PATCH] Fix static analyzer warnings. Fix the following warnings: system/sepolicy/tools/sepolicy-analyze/neverallow.c:346:9: warning: Potential leak of memory pointed to by '__s1' system/sepolicy/tools/sepolicy-analyze/neverallow.c:346:9: warning: Potential leak of memory pointed to by 'id' system/sepolicy/tools/sepolicy-analyze/neverallow.c:364:13: warning: Potential leak of memory pointed to by 'classperms' system/sepolicy/tools/sepolicy-analyze/neverallow.c:364:13: warning: Potential leak of memory pointed to by 'node' Bug: b/27101951 Test:Warnings are gone. Change-Id: Ib9b2e0b9f19950b4b764d438ee58340e6c022ef5 --- tools/sepolicy-analyze/neverallow.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/sepolicy-analyze/neverallow.c b/tools/sepolicy-analyze/neverallow.c index b288ea7ac..337d6ee37 100644 --- a/tools/sepolicy-analyze/neverallow.c +++ b/tools/sepolicy-analyze/neverallow.c @@ -261,6 +261,7 @@ static int read_classperms(policydb_t *policydb, char **ptr, char *end, node->next = classperms; classperms = node; free(id); + id = NULL; } while (p < end && openparens); if (p == end) @@ -328,6 +329,8 @@ static int read_classperms(policydb_t *policydb, char **ptr, char *end, if (!strcmp(id, "*")) { for (node = classperms; node; node = node->next) node->data = ~0; + free(id); + id = NULL; continue; } @@ -344,6 +347,7 @@ static int read_classperms(policydb_t *policydb, char **ptr, char *end, node->data |= 1U << (perm->s.value - 1); } free(id); + id = NULL; } while (p < end && openparens); if (p == end) @@ -364,6 +368,12 @@ static int read_classperms(policydb_t *policydb, char **ptr, char *end, *ptr = p; return 0; err: + // free classperms memory + for (node = classperms; node; ) { + class_perm_node_t *freeptr = node; + node = node->next; + free(freeptr); + } return -1; } -- GitLab