Add posix acl (Access Control Lists) support for mksquashfs and
unsquashfs tools.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 squashfs-tools/read_xattrs.c      |  2 ++
 squashfs-tools/squashfs_fs.h      | 12 +++++++-----
 squashfs-tools/unsquashfs_xattr.c |  4 +++-
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/squashfs-tools/read_xattrs.c b/squashfs-tools/read_xattrs.c
index 42106f5..8ef8291 100644
--- a/squashfs-tools/read_xattrs.c
+++ b/squashfs-tools/read_xattrs.c
@@ -64,6 +64,8 @@ static long long xattr_table_start;
  */
 struct prefix prefix_table[] = {
        { "user.", SQUASHFS_XATTR_USER },
+       { "system.", SQUASHFS_XATTR_POSIX_ACL_ACCESS },
+       { "system.", SQUASHFS_XATTR_POSIX_ACL_DEFAULT },
        { "trusted.", SQUASHFS_XATTR_TRUSTED },
        { "security.", SQUASHFS_XATTR_SECURITY },
        { "", -1 }
diff --git a/squashfs-tools/squashfs_fs.h b/squashfs-tools/squashfs_fs.h
index afca918..040035c 100644
--- a/squashfs-tools/squashfs_fs.h
+++ b/squashfs-tools/squashfs_fs.h
@@ -122,11 +122,13 @@
 #define SQUASHFS_LSOCKET_TYPE          14
 
 /* Xattr types */
-#define SQUASHFS_XATTR_USER            0
-#define SQUASHFS_XATTR_TRUSTED         1
-#define SQUASHFS_XATTR_SECURITY                2
-#define SQUASHFS_XATTR_VALUE_OOL       256
-#define SQUASHFS_XATTR_PREFIX_MASK     0xff
+#define SQUASHFS_XATTR_USER                    0
+#define SQUASHFS_XATTR_POSIX_ACL_ACCESS                1
+#define SQUASHFS_XATTR_POSIX_ACL_DEFAULT       2
+#define SQUASHFS_XATTR_TRUSTED                 3
+#define SQUASHFS_XATTR_SECURITY                        4
+#define SQUASHFS_XATTR_VALUE_OOL               256
+#define SQUASHFS_XATTR_PREFIX_MASK             0xff
 
 /* Flag whether block is compressed or uncompressed, bit is set if block is
  * uncompressed */
diff --git a/squashfs-tools/unsquashfs_xattr.c 
b/squashfs-tools/unsquashfs_xattr.c
index 59f4aae..34aae84 100644
--- a/squashfs-tools/unsquashfs_xattr.c
+++ b/squashfs-tools/unsquashfs_xattr.c
@@ -57,7 +57,9 @@ void write_xattr(char *pathname, unsigned int xattr)
                if(user_xattrs && prefix != SQUASHFS_XATTR_USER)
                        continue;
 
-               if(root_process || prefix == SQUASHFS_XATTR_USER) {
+               if(root_process || prefix == SQUASHFS_XATTR_USER
+                               || prefix == SQUASHFS_XATTR_POSIX_ACL_ACCESS
+                               || prefix == SQUASHFS_XATTR_POSIX_ACL_DEFAULT) {
                        int res = lsetxattr(pathname, xattr_list[i].full_name,
                                xattr_list[i].value, xattr_list[i].vsize, 0);
 
-- 
2.14.1

--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to