summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorwill <will@FreeBSD.org>2006-02-03 15:25:52 +0000
committerwill <will@FreeBSD.org>2006-02-03 15:25:52 +0000
commita82365919d8a02975ce00023c80d7bd078e7cc86 (patch)
tree099f6f51e6843d7f67a29ee82ef85f959ff3e3ea /sys
parent3040542d9eb95869fd12a82cba2c21f2ac31af3d (diff)
downloadFreeBSD-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')
-rw-r--r--sys/fs/udf/ecma167-udf.h2
-rw-r--r--sys/fs/udf/udf_vfsops.c2
-rw-r--r--sys/fs/udf/udf_vnops.c2
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);
OpenPOWER on IntegriCloud