resolve merge conflicts of adadb7d to nyc-dev-plus-aosp
am: c1b985435f
* commit 'c1b985435f3a4515534921f6b3b763d0868c3403':
fs_mgr: pass sehandle to ext4 format routine
Change-Id: I64de82853d2ad29909a0d3d327c6b4271b882f5a
diff --git a/fs_mgr/Android.mk b/fs_mgr/Android.mk
index d0d5630..7da3ca4 100644
--- a/fs_mgr/Android.mk
+++ b/fs_mgr/Android.mk
@@ -10,7 +10,8 @@
libcrypto_utils_static \
libcrypto_static \
libext4_utils_static \
- libsquashfs_utils
+ libsquashfs_utils \
+ libselinux
include $(CLEAR_VARS)
LOCAL_CLANG := true
diff --git a/fs_mgr/fs_mgr_format.c b/fs_mgr/fs_mgr_format.c
index 0b52e00..6c66f47 100644
--- a/fs_mgr/fs_mgr_format.c
+++ b/fs_mgr/fs_mgr_format.c
@@ -23,6 +23,11 @@
#include <errno.h>
#include <cutils/partition_utils.h>
#include <sys/mount.h>
+
+#include <selinux/selinux.h>
+#include <selinux/label.h>
+#include <selinux/android.h>
+
#include "ext4_utils.h"
#include "ext4.h"
#include "make_ext4fs.h"
@@ -47,17 +52,29 @@
return -1;
}
+ struct selabel_handle *sehandle = selinux_android_file_context_handle();
+ if (!sehandle) {
+ /* libselinux logs specific error */
+ ERROR("Cannot initialize android file_contexts");
+ close(fd);
+ return -1;
+ }
+
/* Format the partition using the calculated length */
reset_ext4fs_info();
info.len = (off64_t)dev_sz;
/* Use make_ext4fs_internal to avoid wiping an already-wiped partition. */
- rc = make_ext4fs_internal(fd, NULL, NULL, fs_mnt_point, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL);
+ rc = make_ext4fs_internal(fd, NULL, NULL, fs_mnt_point, 0, 0, 0, 0, 0, 0, sehandle, 0, 0, NULL, NULL, NULL);
if (rc) {
ERROR("make_ext4fs returned %d.\n", rc);
}
close(fd);
+ if (sehandle) {
+ selabel_close(sehandle);
+ }
+
return rc;
}