From patchwork Thu May 5 20:44:15 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Carter X-Patchwork-Id: 9027321 Return-Path: X-Original-To: patchwork-selinux@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 5BFDF9F1D3 for ; Thu, 5 May 2016 20:45:52 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 814F620416 for ; Thu, 5 May 2016 20:45:51 +0000 (UTC) Received: from emsm-gh1-uea11.nsa.gov (smtp.nsa.gov [8.44.101.9]) by mail.kernel.org (Postfix) with ESMTP id 93AC720412 for ; Thu, 5 May 2016 20:45:50 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.24,583,1454976000"; d="scan'208";a="15926851" IronPort-PHdr: =?us-ascii?q?9a23=3Ajz/D7RXh06vVo5Mpa1tAjFr+i0bV8LGtZVwlr6E/?= =?us-ascii?q?grcLSJyIuqrYZhGPt8tkgFKBZ4jH8fUM07OQ6PCxHzRcqs/c6DgrS99laVwssY?= =?us-ascii?q?0uhQsuAcqIWwXQDcXBSGgEJvlET0Jv5HqhMEJYS47UblzWpWCuv3ZJQk2sfTR8?= =?us-ascii?q?Kum9IIPOlcP/j7n0oM2CJV0Uz2PgOftbF1afk0b4joEum4xsK6I8mFPig0BjXK?= =?us-ascii?q?Bo/15uPk+ZhB3m5829r9ZJ+iVUvO89pYYbCf2pN5kiSfRkKBhucyVvvIy4/SXE?= =?us-ascii?q?GBCC4noaT3U+jgtDAw+D6grzGJj2rHjUrO14jQuTOMDtBZs9Qyiv9e8/SgDjgT?= =?us-ascii?q?0bbRYl4WrXjYp2l6sdrxW/8U8si7XIaZ2YYaItNpjWeskXEC8bBss=3D?= X-IPAS-Result: =?us-ascii?q?A2F1BQBnsCtX/wHyM5BfHAGDG4FBD7sXJIc1TAEBAQEBAQI?= =?us-ascii?q?CYieCLYIVAgQBAiQTFCAOAwkBARcpCAgDAS0VEQ4LBRgEiAnADo59EQFohHEcB?= =?us-ascii?q?ZgajhkCiVCFQY80YoIFG4FnUIZ4gTUBAQE?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 May 2016 20:45:48 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus [192.168.25.40]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id u45KjleK014083; Thu, 5 May 2016 16:45:48 -0400 Received: from tarius.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id u45KgfHn040133 for ; Thu, 5 May 2016 16:42:41 -0400 Received: from moss-lions.infosec.tycho.ncsc.mil (moss-lions [192.168.25.4]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id u45Kgehl013386 for ; Thu, 5 May 2016 16:42:40 -0400 From: James Carter To: selinux@tycho.nsa.gov Subject: [PATCH 2/6 v3] libsepol/cil: Store CIL filename in parse tree and AST Date: Thu, 5 May 2016 16:44:15 -0400 Message-Id: <1462481059-12437-3-git-send-email-jwcart2@tycho.nsa.gov> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1462481059-12437-1-git-send-email-jwcart2@tycho.nsa.gov> References: <1462481059-12437-1-git-send-email-jwcart2@tycho.nsa.gov> X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Use some of the functionality recently added to support high-level language line marking to track the CIL filename. The goal is to eventually remove the path field from the tree node struct and offset the addtion of the hll_line field. Signed-off-by: James Carter --- libsepol/cil/src/cil_parser.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/libsepol/cil/src/cil_parser.c b/libsepol/cil/src/cil_parser.c index a92e3bb..451014a 100644 --- a/libsepol/cil/src/cil_parser.c +++ b/libsepol/cil/src/cil_parser.c @@ -179,6 +179,24 @@ exit: return SEPOL_ERR; } +static void add_cil_path(struct cil_tree_node **current, char *path) +{ + struct cil_tree_node *node; + + create_node(&node, *current, 0, 0, path, NULL); + insert_node(node, *current); + *current = node; + + create_node(&node, *current, 0, 0, path, CIL_KEY_SRC_INFO); + insert_node(node, *current); + + create_node(&node, *current, 0, 0, path, CIL_KEY_SRC_CIL); + insert_node(node, *current); + + create_node(&node, *current, 0, 0, path, path); + insert_node(node, *current); +} + int cil_parser(char *_path, char *buffer, uint32_t size, struct cil_tree **parse_tree) { @@ -205,6 +223,8 @@ int cil_parser(char *_path, char *buffer, uint32_t size, struct cil_tree **parse tree = *parse_tree; current = tree->root; + add_cil_path(¤t, path); + do { cil_lexer_next(&tok); switch (tok.type) {