From patchwork Wed Feb 3 08:58:44 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 12063793 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 27600C433E6 for ; Wed, 3 Feb 2021 08:59:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CDEB164F74 for ; Wed, 3 Feb 2021 08:59:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233155AbhBCI7k (ORCPT ); Wed, 3 Feb 2021 03:59:40 -0500 Received: from mx1.polytechnique.org ([129.104.30.34]:43957 "EHLO mx1.polytechnique.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232880AbhBCI7j (ORCPT ); Wed, 3 Feb 2021 03:59:39 -0500 Received: from localhost.localdomain (85-168-38-217.rev.numericable.fr [85.168.38.217]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id AD4665648FF for ; Wed, 3 Feb 2021 09:58:56 +0100 (CET) From: Nicolas Iooss To: selinux@vger.kernel.org Subject: [PATCH 1/3] libsepol: remove unused files Date: Wed, 3 Feb 2021 09:58:44 +0100 Message-Id: <20210203085846.6680-1-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.30.0 MIME-Version: 1.0 X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Wed Feb 3 09:58:56 2021 +0100 (CET)) X-Org-Mail: nicolas.iooss.2010@polytechnique.org Precedence: bulk List-ID: X-Mailing-List: selinux@vger.kernel.org libsepol/src/roles.c contains functions which do not match its header file libsepol/include/sepol/roles.h: // In roles.c int sepol_role_exists(sepol_handle_t * handle __attribute__ ((unused)), sepol_policydb_t * p, const char *role, int *response) // In roles.h extern int sepol_role_exists(const sepol_policydb_t * policydb, const char *role, int *response); and: // In roles.c int sepol_role_list(sepol_handle_t * handle, sepol_policydb_t * p, char ***roles, unsigned int *nroles) // In roles.h extern int sepol_role_list(const sepol_policydb_t * policydb, char ***roles, unsigned int *nroles); Instead of fixing the parameter type (using sepol_handle_t or sepol_policydb_t but not different ones), remove these functions, as they appear not to be used. They are not exported in libsepol.so. Signed-off-by: Nicolas Iooss Acked-by: James Carter --- libsepol/include/sepol/roles.h | 18 ------------ libsepol/src/roles.c | 53 ---------------------------------- 2 files changed, 71 deletions(-) delete mode 100644 libsepol/include/sepol/roles.h delete mode 100644 libsepol/src/roles.c diff --git a/libsepol/include/sepol/roles.h b/libsepol/include/sepol/roles.h deleted file mode 100644 index e750078c8dab..000000000000 --- a/libsepol/include/sepol/roles.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _SEPOL_ROLES_H_ -#define _SEPOL_ROLES_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -extern int sepol_role_exists(const sepol_policydb_t * policydb, - const char *role, int *response); - -extern int sepol_role_list(const sepol_policydb_t * policydb, - char ***roles, unsigned int *nroles); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/libsepol/src/roles.c b/libsepol/src/roles.c deleted file mode 100644 index 4540cee80e19..000000000000 --- a/libsepol/src/roles.c +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include - -#include -#include - -#include "debug.h" -#include "handle.h" - -/* Check if a role exists */ -int sepol_role_exists(sepol_handle_t * handle __attribute__ ((unused)), - sepol_policydb_t * p, const char *role, int *response) -{ - - policydb_t *policydb = &p->p; - *response = (hashtab_search(policydb->p_roles.table, role) != NULL); - - return STATUS_SUCCESS; -} - -/* Fill an array with all valid roles */ -int sepol_role_list(sepol_handle_t * handle, - sepol_policydb_t * p, char ***roles, unsigned int *nroles) -{ - - policydb_t *policydb = &p->p; - unsigned int tmp_nroles = policydb->p_roles.nprim; - char **tmp_roles = (char **)malloc(tmp_nroles * sizeof(char *)); - char **ptr; - unsigned int i; - if (!tmp_roles) - goto omem; - - for (i = 0; i < tmp_nroles; i++) { - tmp_roles[i] = strdup(policydb->p_role_val_to_name[i]); - if (!tmp_roles[i]) - goto omem; - } - - *nroles = tmp_nroles; - *roles = tmp_roles; - - return STATUS_SUCCESS; - - omem: - ERR(handle, "out of memory, could not list roles"); - - ptr = tmp_roles; - while (ptr && *ptr) - free(*ptr++); - free(tmp_roles); - return STATUS_ERR; -} From patchwork Wed Feb 3 08:58:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 12063795 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 52874C433DB for ; Wed, 3 Feb 2021 08:59:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0786664F77 for ; Wed, 3 Feb 2021 08:59:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232880AbhBCI7k (ORCPT ); Wed, 3 Feb 2021 03:59:40 -0500 Received: from mx1.polytechnique.org ([129.104.30.34]:58943 "EHLO mx1.polytechnique.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233001AbhBCI7k (ORCPT ); Wed, 3 Feb 2021 03:59:40 -0500 Received: from localhost.localdomain (85-168-38-217.rev.numericable.fr [85.168.38.217]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id 3B2DD5648FF for ; Wed, 3 Feb 2021 09:58:58 +0100 (CET) From: Nicolas Iooss To: selinux@vger.kernel.org Subject: [PATCH 2/3] libsepol: uniformize prototypes of sepol_mls_contains and sepol_mls_check Date: Wed, 3 Feb 2021 09:58:45 +0100 Message-Id: <20210203085846.6680-2-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210203085846.6680-1-nicolas.iooss@m4x.org> References: <20210203085846.6680-1-nicolas.iooss@m4x.org> MIME-Version: 1.0 X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Wed Feb 3 09:58:58 2021 +0100 (CET)) X-Org-Mail: nicolas.iooss.2010@polytechnique.org Precedence: bulk List-ID: X-Mailing-List: selinux@vger.kernel.org In libsepol/src/mls.c, functions sepol_mls_contains and sepol_mls_check used "sepol_policydb_t * policydb" even though libsepol/include/sepol/context.h used "const sepol_policydb_t * policydb". Add const qualifiers in mls.c in order to match the header file. Detect such mismatching error at compile time by including the header file in mls.c. Signed-off-by: Nicolas Iooss Acked-by: James Carter --- libsepol/src/mls.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libsepol/src/mls.c b/libsepol/src/mls.c index 1ee90cf8dee1..366a1114ce96 100644 --- a/libsepol/src/mls.c +++ b/libsepol/src/mls.c @@ -27,6 +27,7 @@ * Implementation of the multi-level security (MLS) policy. */ +#include #include #include #include @@ -664,7 +665,7 @@ int mls_compute_sid(policydb_t * policydb, } int sepol_mls_contains(sepol_handle_t * handle, - sepol_policydb_t * policydb, + const sepol_policydb_t * policydb, const char *mls1, const char *mls2, int *response) { @@ -703,7 +704,7 @@ int sepol_mls_contains(sepol_handle_t * handle, } int sepol_mls_check(sepol_handle_t * handle, - sepol_policydb_t * policydb, const char *mls) + const sepol_policydb_t * policydb, const char *mls) { int ret; From patchwork Wed Feb 3 08:58:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 12063797 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C5ECC433E9 for ; Wed, 3 Feb 2021 08:59:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 317EF64E49 for ; Wed, 3 Feb 2021 08:59:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233001AbhBCI7n (ORCPT ); Wed, 3 Feb 2021 03:59:43 -0500 Received: from mx1.polytechnique.org ([129.104.30.34]:57622 "EHLO mx1.polytechnique.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233135AbhBCI7l (ORCPT ); Wed, 3 Feb 2021 03:59:41 -0500 Received: from localhost.localdomain (85-168-38-217.rev.numericable.fr [85.168.38.217]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id 22F425648FF for ; Wed, 3 Feb 2021 09:58:59 +0100 (CET) From: Nicolas Iooss To: selinux@vger.kernel.org Subject: [PATCH 3/3] libsepol: include header files in source files when matching declarations Date: Wed, 3 Feb 2021 09:58:46 +0100 Message-Id: <20210203085846.6680-3-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210203085846.6680-1-nicolas.iooss@m4x.org> References: <20210203085846.6680-1-nicolas.iooss@m4x.org> MIME-Version: 1.0 X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Wed Feb 3 09:58:59 2021 +0100 (CET)) X-Org-Mail: nicolas.iooss.2010@polytechnique.org Precedence: bulk List-ID: X-Mailing-List: selinux@vger.kernel.org It is good practise in C to include the header file that specifies the prototype of functions which are defined in the source file. Otherwise, the function prototypes which be different, which could cause unexpected issues. Add the include directives to do this. Signed-off-by: Nicolas Iooss Acked-by: James Carter --- libsepol/cil/src/cil_find.c | 1 + libsepol/cil/src/cil_fqn.c | 1 + libsepol/cil/src/cil_mem.c | 1 + libsepol/cil/src/cil_parser.c | 1 + libsepol/cil/src/cil_policy.c | 1 + libsepol/cil/src/cil_reset_ast.c | 1 + libsepol/src/kernel_to_cil.c | 1 + libsepol/src/kernel_to_conf.c | 1 + libsepol/src/services.c | 1 + 9 files changed, 9 insertions(+) diff --git a/libsepol/cil/src/cil_find.c b/libsepol/cil/src/cil_find.c index 638b675db826..3898725f18d5 100644 --- a/libsepol/cil/src/cil_find.c +++ b/libsepol/cil/src/cil_find.c @@ -30,6 +30,7 @@ #include #include "cil_internal.h" +#include "cil_find.h" #include "cil_flavor.h" #include "cil_list.h" #include "cil_log.h" diff --git a/libsepol/cil/src/cil_fqn.c b/libsepol/cil/src/cil_fqn.c index 2e76f8737754..097222a83da9 100644 --- a/libsepol/cil/src/cil_fqn.c +++ b/libsepol/cil/src/cil_fqn.c @@ -31,6 +31,7 @@ #include #include +#include "cil_fqn.h" #include "cil_internal.h" #include "cil_log.h" #include "cil_strpool.h" diff --git a/libsepol/cil/src/cil_mem.c b/libsepol/cil/src/cil_mem.c index f73021b58d50..8e4a1d246f2c 100644 --- a/libsepol/cil/src/cil_mem.c +++ b/libsepol/cil/src/cil_mem.c @@ -33,6 +33,7 @@ #include #include "cil_log.h" +#include "cil_mem.h" void *cil_malloc(size_t size) { diff --git a/libsepol/cil/src/cil_parser.c b/libsepol/cil/src/cil_parser.c index b62043b95806..0038eed6dd1b 100644 --- a/libsepol/cil/src/cil_parser.c +++ b/libsepol/cil/src/cil_parser.c @@ -38,6 +38,7 @@ #include "cil_mem.h" #include "cil_tree.h" #include "cil_lexer.h" +#include "cil_parser.h" #include "cil_strpool.h" #include "cil_stack.h" diff --git a/libsepol/cil/src/cil_policy.c b/libsepol/cil/src/cil_policy.c index 06d7d74e54c3..74edb34575ea 100644 --- a/libsepol/cil/src/cil_policy.c +++ b/libsepol/cil/src/cil_policy.c @@ -41,6 +41,7 @@ #include "cil_flavor.h" #include "cil_find.h" #include "cil_mem.h" +#include "cil_policy.h" #include "cil_tree.h" #include "cil_list.h" #include "cil_symtab.h" diff --git a/libsepol/cil/src/cil_reset_ast.c b/libsepol/cil/src/cil_reset_ast.c index 52e5f64011d2..3da1b9a64167 100644 --- a/libsepol/cil/src/cil_reset_ast.c +++ b/libsepol/cil/src/cil_reset_ast.c @@ -2,6 +2,7 @@ #include "cil_internal.h" #include "cil_log.h" #include "cil_list.h" +#include "cil_reset_ast.h" #include "cil_symtab.h" static inline void cil_reset_classperms_list(struct cil_list *cp_list); diff --git a/libsepol/src/kernel_to_cil.c b/libsepol/src/kernel_to_cil.c index c247b32f9e75..a146ac514018 100644 --- a/libsepol/src/kernel_to_cil.c +++ b/libsepol/src/kernel_to_cil.c @@ -16,6 +16,7 @@ #define IPPROTO_SCTP 132 #endif +#include #include #include #include diff --git a/libsepol/src/kernel_to_conf.c b/libsepol/src/kernel_to_conf.c index 62bf706c1aa0..a22f196df9e9 100644 --- a/libsepol/src/kernel_to_conf.c +++ b/libsepol/src/kernel_to_conf.c @@ -15,6 +15,7 @@ #define IPPROTO_SCTP 132 #endif +#include #include #include #include diff --git a/libsepol/src/services.c b/libsepol/src/services.c index 72b39657cd2e..6596431c38e2 100644 --- a/libsepol/src/services.c +++ b/libsepol/src/services.c @@ -59,6 +59,7 @@ #include #include #include +#include #include "debug.h" #include "private.h"