udftools/udftools-1.0.0b3-mkudffs-bigendian.patch
2005-05-03 13:39:55 +00:00

37 lines
1.2 KiB
Diff

Date: Sun, 12 Dec 2004 14:25:09 +0100
From: Christoph Hellwig <hch@lst.de>
To: submit@bugs.debian.org
Package: udftools
Version: 1.0.0b3-6
mkduffs crashes with a segmentation fault when trying to create a
filesystem on big-endian systems. e.g. mkudffs /dev/sda4 on my
PowerMac.
udffstools from CVS on sf.net is fine, and I've extracted the actual
fix:
diff -uNr -Xdontdiff -p udftools-1.0.0b3/mkudffs/mkudffs.c udftools/mkudffs/mkudffs.c
--- udftools-1.0.0b3/mkudffs/mkudffs.c 2004-02-23 04:35:33.000000000 +0100
+++ udftools/mkudffs/mkudffs.c 2004-03-02 03:09:39.000000000 +0100
@@ -250,14 +250,14 @@ void split_space(struct udf_disc *disc)
if (size % offsets[PSPACE_SIZE])
size -= (size % offsets[PSPACE_SIZE]);
set_extent(disc, PSPACE, start, size);
- for (i=0; i<disc->udf_lvd[0]->numPartitionMaps; i++)
+ for (i=0; i<le32_to_cpu(disc->udf_lvd[0]->numPartitionMaps); i++)
{
if (i == 1)
disc->udf_lvid->freeSpaceTable[i] = cpu_to_le32(0xFFFFFFFF);
else
disc->udf_lvid->freeSpaceTable[i] = cpu_to_le32(size);
}
- for (j=0; j<disc->udf_lvd[0]->numPartitionMaps; j++)
+ for (j=0; j<le32_to_cpu(disc->udf_lvd[0]->numPartitionMaps); j++)
{
if (j == 1)
disc->udf_lvid->sizeTable[i+j] = cpu_to_le32(0xFFFFFFFF);