Module Name:    src
Committed By:   reinoud
Date:           Fri Apr 22 20:56:46 UTC 2022

Modified Files:
        src/sbin/fsck_udf: main.c
        src/sbin/newfs_udf: udf_core.c

Log Message:
Fix endian issues with fsck_udf/newfs_udf/makefs


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sbin/fsck_udf/main.c
cvs rdiff -u -r1.2 -r1.3 src/sbin/newfs_udf/udf_core.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sbin/fsck_udf/main.c
diff -u src/sbin/fsck_udf/main.c:1.7 src/sbin/fsck_udf/main.c:1.8
--- src/sbin/fsck_udf/main.c:1.7	Fri Apr 22 19:21:08 2022
+++ src/sbin/fsck_udf/main.c	Fri Apr 22 20:56:46 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.7 2022/04/22 19:21:08 reinoud Exp $	*/
+/*	$NetBSD: main.c,v 1.8 2022/04/22 20:56:46 reinoud Exp $	*/
 
 /*
  * Copyright (c) 2022 Reinoud Zandijk
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: main.c,v 1.7 2022/04/22 19:21:08 reinoud Exp $");
+__RCSID("$NetBSD: main.c,v 1.8 2022/04/22 20:56:46 reinoud Exp $");
 #endif /* not lint */
 
 #include <stdio.h>
@@ -362,13 +362,13 @@ udf_wipe_and_reallocate(union dscrptr *d
 	/* create one short_ad or one long_ad */
 	if (ad_type == UDF_ICB_SHORT_ALLOC) {
 		short_adp = (struct short_ad *) bpos;
-		short_adp->len    = udf_rw64(inf_len);
+		short_adp->len    = udf_rw32(inf_len);
 		short_adp->lb_num = allocated.loc.lb_num;
 		l_ad = sizeof(struct short_ad);
 	} else {
 		long_adp  = (struct long_ad  *) bpos;
 		memcpy(long_adp, &allocated, sizeof(struct long_ad));
-		long_adp->len = udf_rw64(inf_len);
+		long_adp->len = udf_rw32(inf_len);
 		l_ad = sizeof(struct long_ad);
 	}
 	if (id == TAGID_FENTRY)
@@ -2600,7 +2600,7 @@ udf_process_vds(void) {
 			 * data file length
 			 */
 			context.part_size[log_part] =
-				udf_rw32(context.meta_file->inf_len) / context.sector_size;
+				udf_rw64(context.meta_file->inf_len) / context.sector_size;
 			break;
 		default:
 			break;

Index: src/sbin/newfs_udf/udf_core.c
diff -u src/sbin/newfs_udf/udf_core.c:1.2 src/sbin/newfs_udf/udf_core.c:1.3
--- src/sbin/newfs_udf/udf_core.c:1.2	Sat Apr  9 09:58:11 2022
+++ src/sbin/newfs_udf/udf_core.c	Fri Apr 22 20:56:46 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_core.c,v 1.2 2022/04/09 09:58:11 riastradh Exp $ */
+/* $NetBSD: udf_core.c,v 1.3 2022/04/22 20:56:46 reinoud Exp $ */
 
 /*
  * Copyright (c) 2006, 2008, 2021, 2022 Reinoud Zandijk
@@ -30,7 +30,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: udf_core.c,v 1.2 2022/04/09 09:58:11 riastradh Exp $");
+__RCSID("$NetBSD: udf_core.c,v 1.3 2022/04/22 20:56:46 reinoud Exp $");
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -2024,7 +2024,7 @@ udf_fidsize(struct fileid_desc *fid)
 	if (udf_rw16(fid->tag.id) != TAGID_FID)
 		errx(1, "internal error, bad tag in %s", __func__);
 
-	size = UDF_FID_SIZE + udf_rw16(fid->l_fi) + udf_rw16(fid->l_iu);
+	size = UDF_FID_SIZE + fid->l_fi + udf_rw16(fid->l_iu);
 	size = (size + 3) & ~3;
 
 	return size;

Reply via email to