Message ID | 20190409045404.20215-1-zlang@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | src/t_attr_corruption: covert value to little endian order | expand |
On Tue, Apr 09, 2019 at 12:54:04PM +0800, Zorro Lang wrote: > generic/529 always fails on ppc64 or s390x big-endian machine as: > > set posix acl: Operation not supported > > Due to the members of struct posix_acl_xattr_entry/header need to be > little-endian byte order, so use htole*() helper to make sure that. > > Signed-off-by: Zorro Lang <zlang@redhat.com> Heh, seems ok... :) Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> --D > --- > src/t_attr_corruption.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/src/t_attr_corruption.c b/src/t_attr_corruption.c > index 9101024e..e7d435b1 100644 > --- a/src/t_attr_corruption.c > +++ b/src/t_attr_corruption.c > @@ -32,6 +32,7 @@ > #include <stdint.h> > #include <unistd.h> > #include <sys/xattr.h> > +#include <endian.h> > > void die(const char *msg) > { > @@ -52,13 +53,14 @@ struct myacl { > > int main(int argc, char *argv[]) > { > + /* posix_acl_xattr_entry/header need little-endian order */ > struct myacl acl = { > - .d = 2, > + .d = htole32(2), > .e = { > - {1, 0, 0}, > - {4, 0, 0}, > - {0x10, 0, 0}, > - {0x20, 0, 0}, > + {htole16(1), 0, 0}, > + {htole16(4), 0, 0}, > + {htole16(0x10), 0, 0}, > + {htole16(0x20), 0, 0}, > }, > }; > char buf[64]; > -- > 2.17.2 >
diff --git a/src/t_attr_corruption.c b/src/t_attr_corruption.c index 9101024e..e7d435b1 100644 --- a/src/t_attr_corruption.c +++ b/src/t_attr_corruption.c @@ -32,6 +32,7 @@ #include <stdint.h> #include <unistd.h> #include <sys/xattr.h> +#include <endian.h> void die(const char *msg) { @@ -52,13 +53,14 @@ struct myacl { int main(int argc, char *argv[]) { + /* posix_acl_xattr_entry/header need little-endian order */ struct myacl acl = { - .d = 2, + .d = htole32(2), .e = { - {1, 0, 0}, - {4, 0, 0}, - {0x10, 0, 0}, - {0x20, 0, 0}, + {htole16(1), 0, 0}, + {htole16(4), 0, 0}, + {htole16(0x10), 0, 0}, + {htole16(0x20), 0, 0}, }, }; char buf[64];
generic/529 always fails on ppc64 or s390x big-endian machine as: set posix acl: Operation not supported Due to the members of struct posix_acl_xattr_entry/header need to be little-endian byte order, so use htole*() helper to make sure that. Signed-off-by: Zorro Lang <zlang@redhat.com> --- src/t_attr_corruption.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)