diff options
author | will <will@FreeBSD.org> | 2006-02-03 15:25:52 +0000 |
---|---|---|
committer | will <will@FreeBSD.org> | 2006-02-03 15:25:52 +0000 |
commit | a82365919d8a02975ce00023c80d7bd078e7cc86 (patch) | |
tree | 099f6f51e6843d7f67a29ee82ef85f959ff3e3ea /sys/fs/udf | |
parent | 3040542d9eb95869fd12a82cba2c21f2ac31af3d (diff) | |
download | FreeBSD-src-a82365919d8a02975ce00023c80d7bd078e7cc86.zip FreeBSD-src-a82365919d8a02975ce00023c80d7bd078e7cc86.tar.gz |
Make UDF endian-safe.
Submitted by: Pedro Martelletto <pedro@ambientworks.net> (via scottl)
Tested on: sparc64
Diffstat (limited to 'sys/fs/udf')
-rw-r--r-- | sys/fs/udf/ecma167-udf.h | 2 | ||||
-rw-r--r-- | sys/fs/udf/udf_vfsops.c | 2 | ||||
-rw-r--r-- | sys/fs/udf/udf_vnops.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/sys/fs/udf/ecma167-udf.h b/sys/fs/udf/ecma167-udf.h index bd78da4..6c7f943 100644 --- a/sys/fs/udf/ecma167-udf.h +++ b/sys/fs/udf/ecma167-udf.h @@ -370,4 +370,4 @@ union dscrptr { #define GETICB(ad_type, fentry, offset) \ (struct ad_type *)&fentry->data[offset] -#define GETICBLEN(ad_type, icb) ((struct ad_type *)(icb))->len +#define GETICBLEN(ad_type, icb) le32toh(((struct ad_type *)(icb))->len) diff --git a/sys/fs/udf/udf_vfsops.c b/sys/fs/udf/udf_vfsops.c index 5609d16..da3de98 100644 --- a/sys/fs/udf/udf_vfsops.c +++ b/sys/fs/udf/udf_vfsops.c @@ -293,7 +293,7 @@ udf_checktag(struct desc_tag *tag, uint16_t id) itag = (uint8_t *)tag; - if (tag->id != id) + if (le16toh(tag->id) != id) return (EINVAL); for (i = 0; i < 15; i++) diff --git a/sys/fs/udf/udf_vnops.c b/sys/fs/udf/udf_vnops.c index 0bb91ec..07bd561 100644 --- a/sys/fs/udf/udf_vnops.c +++ b/sys/fs/udf/udf_vnops.c @@ -1090,7 +1090,7 @@ udf_bmap_internal(struct udf_node *node, off_t offset, daddr_t *sector, } while(offset >= icblen); lsector = (offset >> udfmp->bshift) + - ((struct short_ad *)(icb))->pos; + le32toh(((struct short_ad *)(icb))->pos); *max_size = GETICBLEN(short_ad, icb); |