Project import generated by Copybara.

GitOrigin-RevId: cd9641f348672eb6ab6a297f7e59d6bc465f4023
diff --git a/libselinux/Android.mk b/libselinux/Android.mk
index 52ee483..81a742f 100644
--- a/libselinux/Android.mk
+++ b/libselinux/Android.mk
@@ -98,7 +98,9 @@
     -Werror \
     -Wno-error=missing-noreturn \
     -Wno-error=unused-function \
-    -Wno-error=unused-variable
+    -Wno-error=unused-variable \
+    -Wno-unused-but-set-variable \
+    -Wno-bitwise-instead-of-logical
 
 include $(CLEAR_VARS)
 LOCAL_MODULE := libselinux
diff --git a/libselinux/src/label_file.c b/libselinux/src/label_file.c
index 0b102a1..68187c9 100644
--- a/libselinux/src/label_file.c
+++ b/libselinux/src/label_file.c
@@ -274,12 +274,11 @@
 		/* store the mapping between old and new */
 		newid = find_stem(data, buf, stem_len);
 		if (newid < 0) {
-			newid = store_stem(data, buf, stem_len);
+			newid = store_stem(data, buf, stem_len, 1);
 			if (newid < 0) {
 				rc = newid;
 				goto out;
 			}
-			data->stem_arr[newid].from_mmap = 1;
 		}
 		stem_map[i] = newid;
 	}
diff --git a/libselinux/src/label_file.h b/libselinux/src/label_file.h
index baed334..245523c 100644
--- a/libselinux/src/label_file.h
+++ b/libselinux/src/label_file.h
@@ -276,7 +276,8 @@
 }
 
 /* returns the index of the new stored object */
-static inline int store_stem(struct saved_data *data, char *buf, int stem_len)
+static inline int store_stem(struct saved_data *data, char *buf, int stem_len,
+	char from_mmap)
 {
 	int num = data->num_stems;
 
@@ -286,7 +287,8 @@
 		tmp_arr = realloc(data->stem_arr,
 				  sizeof(*tmp_arr) * alloc_stems);
 		if (!tmp_arr) {
-			free(buf);
+			if (!from_mmap)
+				free(buf);
 			return -1;
 		}
 		data->alloc_stems = alloc_stems;
@@ -294,7 +296,7 @@
 	}
 	data->stem_arr[num].len = stem_len;
 	data->stem_arr[num].buf = buf;
-	data->stem_arr[num].from_mmap = 0;
+	data->stem_arr[num].from_mmap = from_mmap;
 	data->num_stems++;
 
 	return num;
@@ -321,7 +323,7 @@
 	if (!stem)
 		return -1;
 
-	return store_stem(data, stem, stem_len);
+	return store_stem(data, stem, stem_len, 0);
 }
 
 /* This will always check for buffer over-runs and either read the next entry
diff --git a/libsepol/Android.mk b/libsepol/Android.mk
index b491a46..7389ef1 100644
--- a/libsepol/Android.mk
+++ b/libsepol/Android.mk
@@ -8,7 +8,9 @@
     -Wundef \
     -Wshadow \
     -Wno-error=missing-noreturn \
-    -Wmissing-format-attribute
+    -Wmissing-format-attribute \
+    -Wno-unused-but-set-variable \
+    -Wno-bitwise-instead-of-logical
 
 libsepol_src := \
     src/assertion.c \
diff --git a/prebuilts/bin/audit2why b/prebuilts/bin/audit2why
index 38dd602..2221373 100755
--- a/prebuilts/bin/audit2why
+++ b/prebuilts/bin/audit2why
@@ -1,20 +1,20 @@
 #!/bin/sh
 
-if [ -z "${ANDROID_HOST_OUT}" ]; then
-	echo 'ANDROID_HOST_OUT not set. Have you run lunch?'
+if [ -z "${HOST_OUT_EXECUTABLES}" ]; then
+	echo 'HOST_OUT_EXECUTABLES not set. Some error with make setup?'
 	exit 1
 elif [ -z "${ANDROID_BUILD_TOP}" ]; then
 	echo 'ANDROID_BUILD_TOP not set. Have you run lunch?'
 	exit 1
-elif [ ! -f "$ANDROID_HOST_OUT/lib64/libselinux.so" ]; then
-	echo "Cannot find $ANDROID_HOST_OUT/lib64/libselinux.so"
+elif [ ! -f "$HOST_OUT_EXECUTABLES/lib64/libselinux.so" ]; then
+	echo "Cannot find $HOST_OUT_EXECUTABLES/lib64/libselinux.so"
 	echo "Need to build project"
 	exit 1
 fi
 
 unamestr=`uname`
 if [ "$unamestr" = "Linux" -o "$unamestr" = "linux" ]; then
-	export LD_PRELOAD=$ANDROID_HOST_OUT/lib64/libselinux.so
+	export LD_PRELOAD=$HOST_OUT_EXECUTABLES/lib64/libselinux.so
 	export PYTHONPATH=$ANDROID_BUILD_TOP/prebuilts/python/linux-x86/2.7.5/lib/python2.7/site-packages
 	exec python $ANDROID_BUILD_TOP/external/selinux/python/audit2allow/audit2why "$@"
 else