[Buildroot] [PATCH] package/libsepol: fix -fno-common build faiures

Romain Naour romain.naour at gmail.com
Mon May 4 16:02:41 UTC 2020


Hi Matt,

Le 04/05/2020 à 17:41, Matt Weber a écrit :
>  Add upstream patch for
>     libsepol: remove leftovers of cil_mem_error_handler
>     libsepol: fix CIL_KEY_* build errors with -fno-common
> 
> Fixes:
> http://autobuild.buildroot.net/results/3d133ce6e83833f0c70a91270d0c49304c3413f6/

[Build tested on Fedora 32 after reproducing the issue]
Tested-by: Romain Naour <romain.naour at gmail.com>

Best regards,
Romain

> 
> Cc: Romain Naour <romain.naour at gmail.com>
> Cc: Adam Duskett <aduskett at gmail.com>
> Signed-off-by: Matthew Weber <matthew.weber at rockwellcollins.com>
> ---
>  ...IL_KEY_-build-errors-with-fno-common.patch | 528 ++++++++++++++++++
>  ...e-leftovers-of-cil_mem_error_handler.patch |  63 +++
>  2 files changed, 591 insertions(+)
>  create mode 100644 package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch
>  create mode 100644 package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch
> 
> diff --git a/package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch b/package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch
> new file mode 100644
> index 0000000000..6876751ee0
> --- /dev/null
> +++ b/package/libsepol/0002-libsepol-fix-CIL_KEY_-build-errors-with-fno-common.patch
> @@ -0,0 +1,528 @@
> +From a96e8c59ecac84096d870b42701a504791a8cc8c Mon Sep 17 00:00:00 2001
> +From: Ondrej Mosnacek <omosnace at redhat.com>
> +Date: Thu, 23 Jan 2020 13:57:13 +0100
> +Subject: [PATCH] libsepol: fix CIL_KEY_* build errors with -fno-common
> +
> +GCC 10 comes with -fno-common enabled by default - fix the CIL_KEY_*
> +global variables to be defined only once in cil.c and declared in the
> +header file correctly with the 'extern' keyword, so that other units
> +including the file don't generate duplicate definitions.
> +
> +Upstream: https://github.com/SELinuxProject/selinux/commit/a96e8c59ecac84096d870b42701a504791a8cc8c
> +
> +Signed-off-by: Ondrej Mosnacek <omosnace at redhat.com>
> +Signed-off-by: Matt Weber <matthew.weber at rockwellcollins.com>
> +---
> + cil/src/cil.c          | 162 ++++++++++++++++
> + cil/src/cil_internal.h | 322 ++++++++++++++++----------------
> + 2 files changed, 323 insertions(+), 161 deletions(-)
> +
> +diff --git a/cil/src/cil.c b/cil/src/cil.c
> +index de729cf8..d222ad3a 100644
> +--- a/cil/src/cil.c
> ++++ b/cil/src/cil.c
> +@@ -77,6 +77,168 @@ int cil_sym_sizes[CIL_SYM_ARRAY_NUM][CIL_SYM_NUM] = {
> + 	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
> + };
> + 
> ++char *CIL_KEY_CONS_T1;
> ++char *CIL_KEY_CONS_T2;
> ++char *CIL_KEY_CONS_T3;
> ++char *CIL_KEY_CONS_R1;
> ++char *CIL_KEY_CONS_R2;
> ++char *CIL_KEY_CONS_R3;
> ++char *CIL_KEY_CONS_U1;
> ++char *CIL_KEY_CONS_U2;
> ++char *CIL_KEY_CONS_U3;
> ++char *CIL_KEY_CONS_L1;
> ++char *CIL_KEY_CONS_L2;
> ++char *CIL_KEY_CONS_H1;
> ++char *CIL_KEY_CONS_H2;
> ++char *CIL_KEY_AND;
> ++char *CIL_KEY_OR;
> ++char *CIL_KEY_NOT;
> ++char *CIL_KEY_EQ;
> ++char *CIL_KEY_NEQ;
> ++char *CIL_KEY_CONS_DOM;
> ++char *CIL_KEY_CONS_DOMBY;
> ++char *CIL_KEY_CONS_INCOMP;
> ++char *CIL_KEY_CONDTRUE;
> ++char *CIL_KEY_CONDFALSE;
> ++char *CIL_KEY_SELF;
> ++char *CIL_KEY_OBJECT_R;
> ++char *CIL_KEY_STAR;
> ++char *CIL_KEY_TCP;
> ++char *CIL_KEY_UDP;
> ++char *CIL_KEY_DCCP;
> ++char *CIL_KEY_SCTP;
> ++char *CIL_KEY_AUDITALLOW;
> ++char *CIL_KEY_TUNABLEIF;
> ++char *CIL_KEY_ALLOW;
> ++char *CIL_KEY_DONTAUDIT;
> ++char *CIL_KEY_TYPETRANSITION;
> ++char *CIL_KEY_TYPECHANGE;
> ++char *CIL_KEY_CALL;
> ++char *CIL_KEY_TUNABLE;
> ++char *CIL_KEY_XOR;
> ++char *CIL_KEY_ALL;
> ++char *CIL_KEY_RANGE;
> ++char *CIL_KEY_GLOB;
> ++char *CIL_KEY_FILE;
> ++char *CIL_KEY_DIR;
> ++char *CIL_KEY_CHAR;
> ++char *CIL_KEY_BLOCK;
> ++char *CIL_KEY_SOCKET;
> ++char *CIL_KEY_PIPE;
> ++char *CIL_KEY_SYMLINK;
> ++char *CIL_KEY_ANY;
> ++char *CIL_KEY_XATTR;
> ++char *CIL_KEY_TASK;
> ++char *CIL_KEY_TRANS;
> ++char *CIL_KEY_TYPE;
> ++char *CIL_KEY_ROLE;
> ++char *CIL_KEY_USER;
> ++char *CIL_KEY_USERATTRIBUTE;
> ++char *CIL_KEY_USERATTRIBUTESET;
> ++char *CIL_KEY_SENSITIVITY;
> ++char *CIL_KEY_CATEGORY;
> ++char *CIL_KEY_CATSET;
> ++char *CIL_KEY_LEVEL;
> ++char *CIL_KEY_LEVELRANGE;
> ++char *CIL_KEY_CLASS;
> ++char *CIL_KEY_IPADDR;
> ++char *CIL_KEY_MAP_CLASS;
> ++char *CIL_KEY_CLASSPERMISSION;
> ++char *CIL_KEY_BOOL;
> ++char *CIL_KEY_STRING;
> ++char *CIL_KEY_NAME;
> ++char *CIL_KEY_SOURCE;
> ++char *CIL_KEY_TARGET;
> ++char *CIL_KEY_LOW;
> ++char *CIL_KEY_HIGH;
> ++char *CIL_KEY_LOW_HIGH;
> ++char *CIL_KEY_GLBLUB;
> ++char *CIL_KEY_HANDLEUNKNOWN;
> ++char *CIL_KEY_HANDLEUNKNOWN_ALLOW;
> ++char *CIL_KEY_HANDLEUNKNOWN_DENY;
> ++char *CIL_KEY_HANDLEUNKNOWN_REJECT;
> ++char *CIL_KEY_MACRO;
> ++char *CIL_KEY_IN;
> ++char *CIL_KEY_MLS;
> ++char *CIL_KEY_DEFAULTRANGE;
> ++char *CIL_KEY_BLOCKINHERIT;
> ++char *CIL_KEY_BLOCKABSTRACT;
> ++char *CIL_KEY_CLASSORDER;
> ++char *CIL_KEY_CLASSMAPPING;
> ++char *CIL_KEY_CLASSPERMISSIONSET;
> ++char *CIL_KEY_COMMON;
> ++char *CIL_KEY_CLASSCOMMON;
> ++char *CIL_KEY_SID;
> ++char *CIL_KEY_SIDCONTEXT;
> ++char *CIL_KEY_SIDORDER;
> ++char *CIL_KEY_USERLEVEL;
> ++char *CIL_KEY_USERRANGE;
> ++char *CIL_KEY_USERBOUNDS;
> ++char *CIL_KEY_USERPREFIX;
> ++char *CIL_KEY_SELINUXUSER;
> ++char *CIL_KEY_SELINUXUSERDEFAULT;
> ++char *CIL_KEY_TYPEATTRIBUTE;
> ++char *CIL_KEY_TYPEATTRIBUTESET;
> ++char *CIL_KEY_EXPANDTYPEATTRIBUTE;
> ++char *CIL_KEY_TYPEALIAS;
> ++char *CIL_KEY_TYPEALIASACTUAL;
> ++char *CIL_KEY_TYPEBOUNDS;
> ++char *CIL_KEY_TYPEPERMISSIVE;
> ++char *CIL_KEY_RANGETRANSITION;
> ++char *CIL_KEY_USERROLE;
> ++char *CIL_KEY_ROLETYPE;
> ++char *CIL_KEY_ROLETRANSITION;
> ++char *CIL_KEY_ROLEALLOW;
> ++char *CIL_KEY_ROLEATTRIBUTE;
> ++char *CIL_KEY_ROLEATTRIBUTESET;
> ++char *CIL_KEY_ROLEBOUNDS;
> ++char *CIL_KEY_BOOLEANIF;
> ++char *CIL_KEY_NEVERALLOW;
> ++char *CIL_KEY_TYPEMEMBER;
> ++char *CIL_KEY_SENSALIAS;
> ++char *CIL_KEY_SENSALIASACTUAL;
> ++char *CIL_KEY_CATALIAS;
> ++char *CIL_KEY_CATALIASACTUAL;
> ++char *CIL_KEY_CATORDER;
> ++char *CIL_KEY_SENSITIVITYORDER;
> ++char *CIL_KEY_SENSCAT;
> ++char *CIL_KEY_CONSTRAIN;
> ++char *CIL_KEY_MLSCONSTRAIN;
> ++char *CIL_KEY_VALIDATETRANS;
> ++char *CIL_KEY_MLSVALIDATETRANS;
> ++char *CIL_KEY_CONTEXT;
> ++char *CIL_KEY_FILECON;
> ++char *CIL_KEY_IBPKEYCON;
> ++char *CIL_KEY_IBENDPORTCON;
> ++char *CIL_KEY_PORTCON;
> ++char *CIL_KEY_NODECON;
> ++char *CIL_KEY_GENFSCON;
> ++char *CIL_KEY_NETIFCON;
> ++char *CIL_KEY_PIRQCON;
> ++char *CIL_KEY_IOMEMCON;
> ++char *CIL_KEY_IOPORTCON;
> ++char *CIL_KEY_PCIDEVICECON;
> ++char *CIL_KEY_DEVICETREECON;
> ++char *CIL_KEY_FSUSE;
> ++char *CIL_KEY_POLICYCAP;
> ++char *CIL_KEY_OPTIONAL;
> ++char *CIL_KEY_DEFAULTUSER;
> ++char *CIL_KEY_DEFAULTROLE;
> ++char *CIL_KEY_DEFAULTTYPE;
> ++char *CIL_KEY_ROOT;
> ++char *CIL_KEY_NODE;
> ++char *CIL_KEY_PERM;
> ++char *CIL_KEY_ALLOWX;
> ++char *CIL_KEY_AUDITALLOWX;
> ++char *CIL_KEY_DONTAUDITX;
> ++char *CIL_KEY_NEVERALLOWX;
> ++char *CIL_KEY_PERMISSIONX;
> ++char *CIL_KEY_IOCTL;
> ++char *CIL_KEY_UNORDERED;
> ++char *CIL_KEY_SRC_INFO;
> ++char *CIL_KEY_SRC_CIL;
> ++char *CIL_KEY_SRC_HLL;
> ++
> + static void cil_init_keys(void)
> + {
> + 	/* Initialize CIL Keys into strpool */
> +diff --git a/cil/src/cil_internal.h b/cil/src/cil_internal.h
> +index 30fab649..9bdcbdd0 100644
> +--- a/cil/src/cil_internal.h
> ++++ b/cil/src/cil_internal.h
> +@@ -74,167 +74,167 @@ enum cil_pass {
> + /*
> + 	Keywords
> + */
> +-char *CIL_KEY_CONS_T1;
> +-char *CIL_KEY_CONS_T2;
> +-char *CIL_KEY_CONS_T3;
> +-char *CIL_KEY_CONS_R1;
> +-char *CIL_KEY_CONS_R2;
> +-char *CIL_KEY_CONS_R3;
> +-char *CIL_KEY_CONS_U1;
> +-char *CIL_KEY_CONS_U2;
> +-char *CIL_KEY_CONS_U3;
> +-char *CIL_KEY_CONS_L1;
> +-char *CIL_KEY_CONS_L2;
> +-char *CIL_KEY_CONS_H1;
> +-char *CIL_KEY_CONS_H2;
> +-char *CIL_KEY_AND;
> +-char *CIL_KEY_OR;
> +-char *CIL_KEY_NOT;
> +-char *CIL_KEY_EQ;
> +-char *CIL_KEY_NEQ;
> +-char *CIL_KEY_CONS_DOM;
> +-char *CIL_KEY_CONS_DOMBY;
> +-char *CIL_KEY_CONS_INCOMP;
> +-char *CIL_KEY_CONDTRUE;
> +-char *CIL_KEY_CONDFALSE;
> +-char *CIL_KEY_SELF;
> +-char *CIL_KEY_OBJECT_R;
> +-char *CIL_KEY_STAR;
> +-char *CIL_KEY_TCP;
> +-char *CIL_KEY_UDP;
> +-char *CIL_KEY_DCCP;
> +-char *CIL_KEY_SCTP;
> +-char *CIL_KEY_AUDITALLOW;
> +-char *CIL_KEY_TUNABLEIF;
> +-char *CIL_KEY_ALLOW;
> +-char *CIL_KEY_DONTAUDIT;
> +-char *CIL_KEY_TYPETRANSITION;
> +-char *CIL_KEY_TYPECHANGE;
> +-char *CIL_KEY_CALL;
> +-char *CIL_KEY_TUNABLE;
> +-char *CIL_KEY_XOR;
> +-char *CIL_KEY_ALL;
> +-char *CIL_KEY_RANGE;
> +-char *CIL_KEY_GLOB;
> +-char *CIL_KEY_FILE;
> +-char *CIL_KEY_DIR;
> +-char *CIL_KEY_CHAR;
> +-char *CIL_KEY_BLOCK;
> +-char *CIL_KEY_SOCKET;
> +-char *CIL_KEY_PIPE;
> +-char *CIL_KEY_SYMLINK;
> +-char *CIL_KEY_ANY;
> +-char *CIL_KEY_XATTR;
> +-char *CIL_KEY_TASK;
> +-char *CIL_KEY_TRANS;
> +-char *CIL_KEY_TYPE;
> +-char *CIL_KEY_ROLE;
> +-char *CIL_KEY_USER;
> +-char *CIL_KEY_USERATTRIBUTE;
> +-char *CIL_KEY_USERATTRIBUTESET;
> +-char *CIL_KEY_SENSITIVITY;
> +-char *CIL_KEY_CATEGORY;
> +-char *CIL_KEY_CATSET;
> +-char *CIL_KEY_LEVEL;
> +-char *CIL_KEY_LEVELRANGE;
> +-char *CIL_KEY_CLASS;
> +-char *CIL_KEY_IPADDR;
> +-char *CIL_KEY_MAP_CLASS;
> +-char *CIL_KEY_CLASSPERMISSION;
> +-char *CIL_KEY_BOOL;
> +-char *CIL_KEY_STRING;
> +-char *CIL_KEY_NAME;
> +-char *CIL_KEY_SOURCE;
> +-char *CIL_KEY_TARGET;
> +-char *CIL_KEY_LOW;
> +-char *CIL_KEY_HIGH;
> +-char *CIL_KEY_LOW_HIGH;
> +-char *CIL_KEY_GLBLUB;
> +-char *CIL_KEY_HANDLEUNKNOWN;
> +-char *CIL_KEY_HANDLEUNKNOWN_ALLOW;
> +-char *CIL_KEY_HANDLEUNKNOWN_DENY;
> +-char *CIL_KEY_HANDLEUNKNOWN_REJECT;
> +-char *CIL_KEY_MACRO;
> +-char *CIL_KEY_IN;
> +-char *CIL_KEY_MLS;
> +-char *CIL_KEY_DEFAULTRANGE;
> +-char *CIL_KEY_BLOCKINHERIT;
> +-char *CIL_KEY_BLOCKABSTRACT;
> +-char *CIL_KEY_CLASSORDER;
> +-char *CIL_KEY_CLASSMAPPING;
> +-char *CIL_KEY_CLASSPERMISSIONSET;
> +-char *CIL_KEY_COMMON;
> +-char *CIL_KEY_CLASSCOMMON;
> +-char *CIL_KEY_SID;
> +-char *CIL_KEY_SIDCONTEXT;
> +-char *CIL_KEY_SIDORDER;
> +-char *CIL_KEY_USERLEVEL;
> +-char *CIL_KEY_USERRANGE;
> +-char *CIL_KEY_USERBOUNDS;
> +-char *CIL_KEY_USERPREFIX;
> +-char *CIL_KEY_SELINUXUSER;
> +-char *CIL_KEY_SELINUXUSERDEFAULT;
> +-char *CIL_KEY_TYPEATTRIBUTE;
> +-char *CIL_KEY_TYPEATTRIBUTESET;
> +-char *CIL_KEY_EXPANDTYPEATTRIBUTE;
> +-char *CIL_KEY_TYPEALIAS;
> +-char *CIL_KEY_TYPEALIASACTUAL;
> +-char *CIL_KEY_TYPEBOUNDS;
> +-char *CIL_KEY_TYPEPERMISSIVE;
> +-char *CIL_KEY_RANGETRANSITION;
> +-char *CIL_KEY_USERROLE;
> +-char *CIL_KEY_ROLETYPE;
> +-char *CIL_KEY_ROLETRANSITION;
> +-char *CIL_KEY_ROLEALLOW;
> +-char *CIL_KEY_ROLEATTRIBUTE;
> +-char *CIL_KEY_ROLEATTRIBUTESET;
> +-char *CIL_KEY_ROLEBOUNDS;
> +-char *CIL_KEY_BOOLEANIF;
> +-char *CIL_KEY_NEVERALLOW;
> +-char *CIL_KEY_TYPEMEMBER;
> +-char *CIL_KEY_SENSALIAS;
> +-char *CIL_KEY_SENSALIASACTUAL;
> +-char *CIL_KEY_CATALIAS;
> +-char *CIL_KEY_CATALIASACTUAL;
> +-char *CIL_KEY_CATORDER;
> +-char *CIL_KEY_SENSITIVITYORDER;
> +-char *CIL_KEY_SENSCAT;
> +-char *CIL_KEY_CONSTRAIN;
> +-char *CIL_KEY_MLSCONSTRAIN;
> +-char *CIL_KEY_VALIDATETRANS;
> +-char *CIL_KEY_MLSVALIDATETRANS;
> +-char *CIL_KEY_CONTEXT;
> +-char *CIL_KEY_FILECON;
> +-char *CIL_KEY_IBPKEYCON;
> +-char *CIL_KEY_IBENDPORTCON;
> +-char *CIL_KEY_PORTCON;
> +-char *CIL_KEY_NODECON;
> +-char *CIL_KEY_GENFSCON;
> +-char *CIL_KEY_NETIFCON;
> +-char *CIL_KEY_PIRQCON;
> +-char *CIL_KEY_IOMEMCON;
> +-char *CIL_KEY_IOPORTCON;
> +-char *CIL_KEY_PCIDEVICECON;
> +-char *CIL_KEY_DEVICETREECON;
> +-char *CIL_KEY_FSUSE;
> +-char *CIL_KEY_POLICYCAP;
> +-char *CIL_KEY_OPTIONAL;
> +-char *CIL_KEY_DEFAULTUSER;
> +-char *CIL_KEY_DEFAULTROLE;
> +-char *CIL_KEY_DEFAULTTYPE;
> +-char *CIL_KEY_ROOT;
> +-char *CIL_KEY_NODE;
> +-char *CIL_KEY_PERM;
> +-char *CIL_KEY_ALLOWX;
> +-char *CIL_KEY_AUDITALLOWX;
> +-char *CIL_KEY_DONTAUDITX;
> +-char *CIL_KEY_NEVERALLOWX;
> +-char *CIL_KEY_PERMISSIONX;
> +-char *CIL_KEY_IOCTL;
> +-char *CIL_KEY_UNORDERED;
> +-char *CIL_KEY_SRC_INFO;
> +-char *CIL_KEY_SRC_CIL;
> +-char *CIL_KEY_SRC_HLL;
> ++extern char *CIL_KEY_CONS_T1;
> ++extern char *CIL_KEY_CONS_T2;
> ++extern char *CIL_KEY_CONS_T3;
> ++extern char *CIL_KEY_CONS_R1;
> ++extern char *CIL_KEY_CONS_R2;
> ++extern char *CIL_KEY_CONS_R3;
> ++extern char *CIL_KEY_CONS_U1;
> ++extern char *CIL_KEY_CONS_U2;
> ++extern char *CIL_KEY_CONS_U3;
> ++extern char *CIL_KEY_CONS_L1;
> ++extern char *CIL_KEY_CONS_L2;
> ++extern char *CIL_KEY_CONS_H1;
> ++extern char *CIL_KEY_CONS_H2;
> ++extern char *CIL_KEY_AND;
> ++extern char *CIL_KEY_OR;
> ++extern char *CIL_KEY_NOT;
> ++extern char *CIL_KEY_EQ;
> ++extern char *CIL_KEY_NEQ;
> ++extern char *CIL_KEY_CONS_DOM;
> ++extern char *CIL_KEY_CONS_DOMBY;
> ++extern char *CIL_KEY_CONS_INCOMP;
> ++extern char *CIL_KEY_CONDTRUE;
> ++extern char *CIL_KEY_CONDFALSE;
> ++extern char *CIL_KEY_SELF;
> ++extern char *CIL_KEY_OBJECT_R;
> ++extern char *CIL_KEY_STAR;
> ++extern char *CIL_KEY_TCP;
> ++extern char *CIL_KEY_UDP;
> ++extern char *CIL_KEY_DCCP;
> ++extern char *CIL_KEY_SCTP;
> ++extern char *CIL_KEY_AUDITALLOW;
> ++extern char *CIL_KEY_TUNABLEIF;
> ++extern char *CIL_KEY_ALLOW;
> ++extern char *CIL_KEY_DONTAUDIT;
> ++extern char *CIL_KEY_TYPETRANSITION;
> ++extern char *CIL_KEY_TYPECHANGE;
> ++extern char *CIL_KEY_CALL;
> ++extern char *CIL_KEY_TUNABLE;
> ++extern char *CIL_KEY_XOR;
> ++extern char *CIL_KEY_ALL;
> ++extern char *CIL_KEY_RANGE;
> ++extern char *CIL_KEY_GLOB;
> ++extern char *CIL_KEY_FILE;
> ++extern char *CIL_KEY_DIR;
> ++extern char *CIL_KEY_CHAR;
> ++extern char *CIL_KEY_BLOCK;
> ++extern char *CIL_KEY_SOCKET;
> ++extern char *CIL_KEY_PIPE;
> ++extern char *CIL_KEY_SYMLINK;
> ++extern char *CIL_KEY_ANY;
> ++extern char *CIL_KEY_XATTR;
> ++extern char *CIL_KEY_TASK;
> ++extern char *CIL_KEY_TRANS;
> ++extern char *CIL_KEY_TYPE;
> ++extern char *CIL_KEY_ROLE;
> ++extern char *CIL_KEY_USER;
> ++extern char *CIL_KEY_USERATTRIBUTE;
> ++extern char *CIL_KEY_USERATTRIBUTESET;
> ++extern char *CIL_KEY_SENSITIVITY;
> ++extern char *CIL_KEY_CATEGORY;
> ++extern char *CIL_KEY_CATSET;
> ++extern char *CIL_KEY_LEVEL;
> ++extern char *CIL_KEY_LEVELRANGE;
> ++extern char *CIL_KEY_CLASS;
> ++extern char *CIL_KEY_IPADDR;
> ++extern char *CIL_KEY_MAP_CLASS;
> ++extern char *CIL_KEY_CLASSPERMISSION;
> ++extern char *CIL_KEY_BOOL;
> ++extern char *CIL_KEY_STRING;
> ++extern char *CIL_KEY_NAME;
> ++extern char *CIL_KEY_SOURCE;
> ++extern char *CIL_KEY_TARGET;
> ++extern char *CIL_KEY_LOW;
> ++extern char *CIL_KEY_HIGH;
> ++extern char *CIL_KEY_LOW_HIGH;
> ++extern char *CIL_KEY_GLBLUB;
> ++extern char *CIL_KEY_HANDLEUNKNOWN;
> ++extern char *CIL_KEY_HANDLEUNKNOWN_ALLOW;
> ++extern char *CIL_KEY_HANDLEUNKNOWN_DENY;
> ++extern char *CIL_KEY_HANDLEUNKNOWN_REJECT;
> ++extern char *CIL_KEY_MACRO;
> ++extern char *CIL_KEY_IN;
> ++extern char *CIL_KEY_MLS;
> ++extern char *CIL_KEY_DEFAULTRANGE;
> ++extern char *CIL_KEY_BLOCKINHERIT;
> ++extern char *CIL_KEY_BLOCKABSTRACT;
> ++extern char *CIL_KEY_CLASSORDER;
> ++extern char *CIL_KEY_CLASSMAPPING;
> ++extern char *CIL_KEY_CLASSPERMISSIONSET;
> ++extern char *CIL_KEY_COMMON;
> ++extern char *CIL_KEY_CLASSCOMMON;
> ++extern char *CIL_KEY_SID;
> ++extern char *CIL_KEY_SIDCONTEXT;
> ++extern char *CIL_KEY_SIDORDER;
> ++extern char *CIL_KEY_USERLEVEL;
> ++extern char *CIL_KEY_USERRANGE;
> ++extern char *CIL_KEY_USERBOUNDS;
> ++extern char *CIL_KEY_USERPREFIX;
> ++extern char *CIL_KEY_SELINUXUSER;
> ++extern char *CIL_KEY_SELINUXUSERDEFAULT;
> ++extern char *CIL_KEY_TYPEATTRIBUTE;
> ++extern char *CIL_KEY_TYPEATTRIBUTESET;
> ++extern char *CIL_KEY_EXPANDTYPEATTRIBUTE;
> ++extern char *CIL_KEY_TYPEALIAS;
> ++extern char *CIL_KEY_TYPEALIASACTUAL;
> ++extern char *CIL_KEY_TYPEBOUNDS;
> ++extern char *CIL_KEY_TYPEPERMISSIVE;
> ++extern char *CIL_KEY_RANGETRANSITION;
> ++extern char *CIL_KEY_USERROLE;
> ++extern char *CIL_KEY_ROLETYPE;
> ++extern char *CIL_KEY_ROLETRANSITION;
> ++extern char *CIL_KEY_ROLEALLOW;
> ++extern char *CIL_KEY_ROLEATTRIBUTE;
> ++extern char *CIL_KEY_ROLEATTRIBUTESET;
> ++extern char *CIL_KEY_ROLEBOUNDS;
> ++extern char *CIL_KEY_BOOLEANIF;
> ++extern char *CIL_KEY_NEVERALLOW;
> ++extern char *CIL_KEY_TYPEMEMBER;
> ++extern char *CIL_KEY_SENSALIAS;
> ++extern char *CIL_KEY_SENSALIASACTUAL;
> ++extern char *CIL_KEY_CATALIAS;
> ++extern char *CIL_KEY_CATALIASACTUAL;
> ++extern char *CIL_KEY_CATORDER;
> ++extern char *CIL_KEY_SENSITIVITYORDER;
> ++extern char *CIL_KEY_SENSCAT;
> ++extern char *CIL_KEY_CONSTRAIN;
> ++extern char *CIL_KEY_MLSCONSTRAIN;
> ++extern char *CIL_KEY_VALIDATETRANS;
> ++extern char *CIL_KEY_MLSVALIDATETRANS;
> ++extern char *CIL_KEY_CONTEXT;
> ++extern char *CIL_KEY_FILECON;
> ++extern char *CIL_KEY_IBPKEYCON;
> ++extern char *CIL_KEY_IBENDPORTCON;
> ++extern char *CIL_KEY_PORTCON;
> ++extern char *CIL_KEY_NODECON;
> ++extern char *CIL_KEY_GENFSCON;
> ++extern char *CIL_KEY_NETIFCON;
> ++extern char *CIL_KEY_PIRQCON;
> ++extern char *CIL_KEY_IOMEMCON;
> ++extern char *CIL_KEY_IOPORTCON;
> ++extern char *CIL_KEY_PCIDEVICECON;
> ++extern char *CIL_KEY_DEVICETREECON;
> ++extern char *CIL_KEY_FSUSE;
> ++extern char *CIL_KEY_POLICYCAP;
> ++extern char *CIL_KEY_OPTIONAL;
> ++extern char *CIL_KEY_DEFAULTUSER;
> ++extern char *CIL_KEY_DEFAULTROLE;
> ++extern char *CIL_KEY_DEFAULTTYPE;
> ++extern char *CIL_KEY_ROOT;
> ++extern char *CIL_KEY_NODE;
> ++extern char *CIL_KEY_PERM;
> ++extern char *CIL_KEY_ALLOWX;
> ++extern char *CIL_KEY_AUDITALLOWX;
> ++extern char *CIL_KEY_DONTAUDITX;
> ++extern char *CIL_KEY_NEVERALLOWX;
> ++extern char *CIL_KEY_PERMISSIONX;
> ++extern char *CIL_KEY_IOCTL;
> ++extern char *CIL_KEY_UNORDERED;
> ++extern char *CIL_KEY_SRC_INFO;
> ++extern char *CIL_KEY_SRC_CIL;
> ++extern char *CIL_KEY_SRC_HLL;
> + 
> + /*
> + 	Symbol Table Array Indices
> +-- 
> +2.17.1
> +
> diff --git a/package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch b/package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch
> new file mode 100644
> index 0000000000..a1b016121f
> --- /dev/null
> +++ b/package/libsepol/0003-libsepol-remove-leftovers-of-cil_mem_error_handler.patch
> @@ -0,0 +1,63 @@
> +From 3d32fc24d6aff360a538c63dad08ca5c957551b0 Mon Sep 17 00:00:00 2001
> +From: Ondrej Mosnacek <omosnace at redhat.com>
> +Date: Thu, 23 Jan 2020 13:57:14 +0100
> +Subject: [PATCH] libsepol: remove leftovers of cil_mem_error_handler
> +
> +Commit 4459d635b8f1 ("libsepol: Remove cil_mem_error_handler() function
> +pointer") replaced cil_mem_error_handler usage with inline contents of
> +the default handler. However, it left over the header declaration and
> +two callers. Convert these as well and remove the header declaration.
> +
> +This also fixes a build failure with -fno-common.
> +
> +Upstream: https://github.com/SELinuxProject/selinux/commit/3d32fc24d6aff360a538c63dad08ca5c957551b0
> +
> +Fixes: 4459d635b8f1 ("libsepol: Remove cil_mem_error_handler() function pointer")
> +Signed-off-by: Ondrej Mosnacek <omosnace at redhat.com>
> +Signed-off-by: Matt Weber <matthew.weber at rockwellcollins.com>
> +---
> + cil/src/cil_mem.h     | 1 -
> + cil/src/cil_strpool.c | 8 ++++----
> + 2 files changed, 4 insertions(+), 5 deletions(-)
> +
> +diff --git a/cil/src/cil_mem.h b/cil/src/cil_mem.h
> +index 902ce131..794f02a3 100644
> +--- a/cil/src/cil_mem.h
> ++++ b/cil/src/cil_mem.h
> +@@ -36,7 +36,6 @@ void *cil_calloc(size_t num_elements, size_t element_size);
> + void *cil_realloc(void *ptr, size_t size);
> + char *cil_strdup(const char *str);
> + int cil_asprintf(char **strp, const char *fmt, ...);
> +-void (*cil_mem_error_handler)(void);
> + 
> + #endif /* CIL_MEM_H_ */
> + 
> +diff --git a/cil/src/cil_strpool.c b/cil/src/cil_strpool.c
> +index 97d4c4b9..2598bbf3 100644
> +--- a/cil/src/cil_strpool.c
> ++++ b/cil/src/cil_strpool.c
> +@@ -80,8 +80,8 @@ char *cil_strpool_add(const char *str)
> + 		int rc = hashtab_insert(cil_strpool_tab, (hashtab_key_t)strpool_ref->str, strpool_ref);
> + 		if (rc != SEPOL_OK) {
> + 			pthread_mutex_unlock(&cil_strpool_mutex);
> +-			(*cil_mem_error_handler)();
> +-			pthread_mutex_lock(&cil_strpool_mutex);
> ++			cil_log(CIL_ERR, "Failed to allocate memory\n");
> ++			exit(1);
> + 		}
> + 	}
> + 
> +@@ -104,8 +104,8 @@ void cil_strpool_init(void)
> + 		cil_strpool_tab = hashtab_create(cil_strpool_hash, cil_strpool_compare, CIL_STRPOOL_TABLE_SIZE);
> + 		if (cil_strpool_tab == NULL) {
> + 			pthread_mutex_unlock(&cil_strpool_mutex);
> +-			(*cil_mem_error_handler)();
> +-			return;
> ++			cil_log(CIL_ERR, "Failed to allocate memory\n");
> ++			exit(1);
> + 		}
> + 	}
> + 	cil_strpool_readers++;
> +-- 
> +2.17.1
> +
> 



More information about the buildroot mailing list