diff options
author | Colin Cross <ccross@android.com> | 2012-11-26 16:32:16 -0800 |
---|---|---|
committer | Ying Wang <wangying@google.com> | 2012-12-11 15:20:40 -0800 |
commit | c04808a532b0421fded05eecf5d843c45b7eb407 (patch) | |
tree | 946cafa6ce9860f2b486b6116658734553db345c | |
parent | 0f92e16a064c285f5c667df7090b07d28e5e098a (diff) | |
download | extras-c04808a532b0421fded05eecf5d843c45b7eb407.tar.gz |
make_ext4fs: fix sepolicy lookup for lost+found
selabel_lookup needs the full path including mountpoint.
Change-Id: Idc0641683a4e4528d94e54be1897315bf5fcdb0d
-rw-r--r-- | ext4_utils/make_ext4fs.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c index 85dad4e7..db6fbe6f 100644 --- a/ext4_utils/make_ext4fs.c +++ b/ext4_utils/make_ext4fs.c @@ -215,7 +215,7 @@ static u32 build_directory_structure(const char *full_path, const char *dir_path dentries = tmp; dentries[0].filename = strdup("lost+found"); - dentries[0].path = strdup("/lost+found"); + asprintf(&dentries[0].path, "%s/lost+found", dir_path); dentries[0].full_path = NULL; dentries[0].size = 0; dentries[0].mode = S_IRWXU; @@ -223,9 +223,13 @@ static u32 build_directory_structure(const char *full_path, const char *dir_path dentries[0].uid = 0; dentries[0].gid = 0; #ifdef HAVE_SELINUX - if (sehnd) - if (selabel_lookup(sehnd, &dentries[0].secon, "lost+found", dentries[0].mode) < 0) - error("cannot lookup security context for /lost+found"); + if (sehnd) { + char *sepath = NULL; + asprintf(&sepath, "/%s", dentries[0].path); + if (selabel_lookup(sehnd, &dentries[0].secon, sepath, dentries[0].mode) < 0) + error("cannot lookup security context for %s", dentries[0].path); + free(sepath); + } #endif entries++; dirs++; |