diff mbox

[3/3] libselinux: makes android label back ends configurable

Message ID 1475149159-21757-3-git-send-email-jdanis@android.com (mailing list archive)
State Not Applicable
Headers show

Commit Message

Janis Danisevskis Sept. 29, 2016, 11:39 a.m. UTC
Android label back ends are not configurable by NO_ANDROID_BACKEND,
which is set if on ANDROID_HOST != y.

Signed-off-by: Janis Danisevskis <jdanis@android.com>
---
 libselinux/src/Makefile |  3 +++
 libselinux/src/label.c  | 10 ++++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

Comments

Stephen Smalley Sept. 29, 2016, 2:23 p.m. UTC | #1
On 09/29/2016 07:39 AM, Janis Danisevskis wrote:
> Android label back ends are not configurable by NO_ANDROID_BACKEND,
> which is set if on ANDROID_HOST != y.
> 
> Signed-off-by: Janis Danisevskis <jdanis@android.com>

Thanks, applied all three.

> ---
>  libselinux/src/Makefile |  3 +++
>  libselinux/src/label.c  | 10 ++++++++--
>  2 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
> index cba8383..7169230 100644
> --- a/libselinux/src/Makefile
> +++ b/libselinux/src/Makefile
> @@ -87,6 +87,9 @@ DISABLE_FLAGS+= -DNO_MEDIA_BACKEND -DNO_DB_BACKEND -DNO_X_BACKEND \
>  SRCS= callbacks.c freecon.c label.c label_file.c \
>  	label_backends_android.c regex.c label_support.c \
>  	matchpathcon.c setrans_client.c sha1.c
> +else
> +DISABLE_FLAGS+= -DNO_ANDROID_BACKEND
> +SRCS:= $(filter-out label_backends_android.c, $(SRCS))
>  endif
>  
>  SWIG = swig -Wall -python -o $(SWIGCOUT) -outdir ./ $(DISABLE_FLAGS)
> diff --git a/libselinux/src/label.c b/libselinux/src/label.c
> index eb0e766..60639cf 100644
> --- a/libselinux/src/label.c
> +++ b/libselinux/src/label.c
> @@ -35,6 +35,12 @@
>  #define CONFIG_DB_BACKEND(fnptr) &fnptr
>  #endif
>  
> +#ifdef NO_ANDROID_BACKEND
> +#define CONFIG_ANDROID_BACKEND(fnptr) NULL
> +#else
> +#define CONFIG_ANDROID_BACKEND(fnptr) (&(fnptr))
> +#endif
> +
>  typedef int (*selabel_initfunc)(struct selabel_handle *rec,
>  				const struct selinux_opt *opts,
>  				unsigned nopts);
> @@ -44,8 +50,8 @@ static selabel_initfunc initfuncs[] = {
>  	CONFIG_MEDIA_BACKEND(selabel_media_init),
>  	CONFIG_X_BACKEND(selabel_x_init),
>  	CONFIG_DB_BACKEND(selabel_db_init),
> -	&selabel_property_init,
> -	&selabel_service_init,
> +	CONFIG_ANDROID_BACKEND(selabel_property_init),
> +	CONFIG_ANDROID_BACKEND(selabel_service_init),
>  };
>  
>  static void selabel_subs_fini(struct selabel_sub *ptr)
>
diff mbox

Patch

diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
index cba8383..7169230 100644
--- a/libselinux/src/Makefile
+++ b/libselinux/src/Makefile
@@ -87,6 +87,9 @@  DISABLE_FLAGS+= -DNO_MEDIA_BACKEND -DNO_DB_BACKEND -DNO_X_BACKEND \
 SRCS= callbacks.c freecon.c label.c label_file.c \
 	label_backends_android.c regex.c label_support.c \
 	matchpathcon.c setrans_client.c sha1.c
+else
+DISABLE_FLAGS+= -DNO_ANDROID_BACKEND
+SRCS:= $(filter-out label_backends_android.c, $(SRCS))
 endif
 
 SWIG = swig -Wall -python -o $(SWIGCOUT) -outdir ./ $(DISABLE_FLAGS)
diff --git a/libselinux/src/label.c b/libselinux/src/label.c
index eb0e766..60639cf 100644
--- a/libselinux/src/label.c
+++ b/libselinux/src/label.c
@@ -35,6 +35,12 @@ 
 #define CONFIG_DB_BACKEND(fnptr) &fnptr
 #endif
 
+#ifdef NO_ANDROID_BACKEND
+#define CONFIG_ANDROID_BACKEND(fnptr) NULL
+#else
+#define CONFIG_ANDROID_BACKEND(fnptr) (&(fnptr))
+#endif
+
 typedef int (*selabel_initfunc)(struct selabel_handle *rec,
 				const struct selinux_opt *opts,
 				unsigned nopts);
@@ -44,8 +50,8 @@  static selabel_initfunc initfuncs[] = {
 	CONFIG_MEDIA_BACKEND(selabel_media_init),
 	CONFIG_X_BACKEND(selabel_x_init),
 	CONFIG_DB_BACKEND(selabel_db_init),
-	&selabel_property_init,
-	&selabel_service_init,
+	CONFIG_ANDROID_BACKEND(selabel_property_init),
+	CONFIG_ANDROID_BACKEND(selabel_service_init),
 };
 
 static void selabel_subs_fini(struct selabel_sub *ptr)