Bug #2334

32/64bit problem in msdosfs

Added by isenmann about 2 years ago. Updated about 2 years ago.

Status:ResolvedStart date:03/25/2012
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

Just noticed on 3.0.2/x86_64 that there is at least one 32/64 problem
in msdosfs:

--- sys/vfs/msdosfs/msdosfs_vfsops.c.orig 2012-03-25 11:40:42.453342000 +0200
+++ sys/vfs/msdosfs/msdosfs_vfsops.c 2012-03-25 11:40:51.693034000 +0200
@@ -542,7 +542,7 @@
&& !bcmp(fp->fsisig3, "\0\0\125\252", 4)
&& !bcmp(fp->fsisig4, "\0\0\125\252", 4)) {
pmp->pm_nxtfree = getulong(fp->fsinxtfree);
- if (pmp->pm_nxtfree == 0xffffffff)
+ if (pmp->pm_nxtfree == (u_long)-1)
pmp->pm_nxtfree = CLUST_FIRST;
} else
pmp->pm_fsinfo = 0;

Without this change I get "Next free cluster in FSInfo
(18446744073709551615) exceeds maxcluster (244833)" when I try to
mount a 8GB SDHC card on x86_64.

History

#1 Updated by vsrinivas about 2 years ago

Confirmed with an 8GB filesystem locally; patch committed to master. (68cc29492751172e9897a90c303b1c7fbb18112a)

Should be MFC-ed.

#2 Updated by vsrinivas about 2 years ago

  • Status changed from New to Resolved

Also available in: Atom PDF