+ if (sscanf(buf, "%o %d,%d %d:%d",
+ &mode, &rdev_major, &rdev_minor, &uid, &gid) != 5) {
+ fprintf(stderr, "Corrupt %s xattr attached to %s: \"%s\"\n",
+ XSTAT_ATTR, fname, buf);
+ exit(1);
+ }
+
+ fst->st_mode = from_wire_mode(mode);
+ fst->st_rdev = MAKEDEV(rdev_major, rdev_minor);
+ fst->st_uid = uid;
+ fst->st_gid = gid;
+
+ return 0;
+}
+
+static void failed(char const *what, char const *where)
+{
+ fprintf(stderr, PROGRAM ": %s %s: %s\n",
+ what, where, strerror(errno));
+ exit(1);
+}
+
+static void list_file(const char *fname)