summaryrefslogtreecommitdiff
path: root/unpack/rdsquashfs.c
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-08-01 14:43:04 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-08-01 15:48:42 +0200
commitacfef038be1db770c33476bbb33b53558ddabc91 (patch)
tree3a681779e25f180f67d4244c3f0972b796526045 /unpack/rdsquashfs.c
parentb6f8bbbd4d3c344c220f884ad5629ab3576e9105 (diff)
Add option to rdsquashfs to dump extended attributes for an inode
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'unpack/rdsquashfs.c')
-rw-r--r--unpack/rdsquashfs.c19
1 files changed, 19 insertions, 0 deletions
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;