From acfef038be1db770c33476bbb33b53558ddabc91 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Thu, 1 Aug 2019 14:43:04 +0200 Subject: Add option to rdsquashfs to dump extended attributes for an inode Signed-off-by: David Oberhollenzer --- unpack/rdsquashfs.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'unpack/rdsquashfs.c') diff --git a/unpack/rdsquashfs.c b/unpack/rdsquashfs.c index 4b2dc6c..5eb10f2 100644 --- a/unpack/rdsquashfs.c +++ b/unpack/rdsquashfs.c @@ -6,6 +6,21 @@ */ #include "rdsquashfs.h" +static void dump_xattrs(fstree_t *fs, tree_xattr_t *xattr) +{ + const char *key, *value; + size_t i; + + for (i = 0; i < xattr->num_attr; ++i) { + key = str_table_get_string(&fs->xattr_keys, + xattr->attr[i].key_index); + value = str_table_get_string(&fs->xattr_values, + xattr->attr[i].value_index); + + printf("%s=%s\n", key, value); + } +} + int main(int argc, char **argv) { int status = EXIT_FAILURE; @@ -106,6 +121,10 @@ int main(int argc, char **argv) case OP_DESCRIBE: describe_tree(fs.root, opt.unpack_root); break; + case OP_RDATTR: + if (n->xattr != NULL) + dump_xattrs(&fs, n->xattr); + break; } status = EXIT_SUCCESS; -- cgit v1.2.3