summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs_mgr/Android.mk4
-rw-r--r--fs_mgr/fs_mgr.c10
2 files changed, 12 insertions, 2 deletions
diff --git a/fs_mgr/Android.mk b/fs_mgr/Android.mk
index 7c66f6ab0..48b11b690 100644
--- a/fs_mgr/Android.mk
+++ b/fs_mgr/Android.mk
@@ -3,6 +3,10 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
+ifeq ($(HAVE_SELINUX),true)
+LOCAL_CFLAGS += -DHAVE_SELINUX
+endif
+
LOCAL_SRC_FILES:= fs_mgr.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
diff --git a/fs_mgr/fs_mgr.c b/fs_mgr/fs_mgr.c
index 99adb81d9..361cf5ca6 100644
--- a/fs_mgr/fs_mgr.c
+++ b/fs_mgr/fs_mgr.c
@@ -147,8 +147,14 @@ static int parse_flags(char *flags, struct flag_list *fl, char **key_loc,
/* It's not a known flag, so it must be a filesystem specific
* option. Add it to fs_options if it was passed in.
*/
- strlcat(fs_options, p, fs_options_len);
- strlcat(fs_options, ",", fs_options_len);
+#ifndef HAVE_SELINUX
+ /* Drop context option from non-selinux builds */
+ if (strncmp(p,"context=",8))
+#endif
+ {
+ strlcat(fs_options, p, fs_options_len);
+ strlcat(fs_options, ",", fs_options_len);
+ }
} else {
/* fs_options was not passed in, so if the flag is unknown
* it's an error.