Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jul 2009 12:29:23 +0200 (CEST)
From:      Alexander Best <alexbestms@math.uni-muenster.de>
To:        <freebsd-current@FreeBSD.org>
Subject:   possible bug in sbin/fsck_msdosfs/boot.c
Message-ID:  <permail-20090723102923f7e55a9d000042a4-a_best01@message-id.uni-muenster.de>

next in thread | raw e-mail | index | archive | help
  This is a MIME encoded multipart message.

--+permail-20090723102923f7e55a9d000042a4-a_best01+
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

i just tried to do fsck_msdosfs on my mobile phone's memory card using a usb
connection cable. this is what `file -s` has to say about /dev/da0:

/dev/da0: x86 boot sector, code offset 0x0, OEM-ID "        ", sectors/cluster
64, reserved sectors 6304, Media descriptor 0xf8, heads 128, hidden sectors
8192, sectors 7736320 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 944,
reserved3 0x800000, serial number 0x34613466, label: "mem        "

however after issuing the command `fsck_msdosfs /dev/da0` i got the following
error:

fsck_msdosfs /dev/da0
** /dev/da0
backup doesn't compare to primary bootblock

i did a bit of research and it seems this bug was supposed to be fixed by
r128463. the problem was that the entire bootblock was compared to the
backupblock. but since only the first 52 bytes of the bootblock are important
many device use the rest of the bootblock for some other purpose. the
following change was made to sbin/fsck_msdosfs/boot.c:

-- if (memcmp(block, backup, DOSBOOTBLOCKSIZE)) {
++ if (memcmp(block + 11, backup + 11, 79)) {

it seems however that the last memcmp argument is still too high. could
somebody with good fat12/16/32 knowledge please look into this?

i attached the original openbsd problem report which described the problem in
detail in 2006 (actually the problem was first discovered in 2001 but nobody
seemed to care about it back then).

cheers.
alex

oh...and i'm running r195774 (8.0-BETA2).

--+permail-20090723102923f7e55a9d000042a4-a_best01+
Content-Type: text/plain
Content-Transfer-Encoding: Base64
Content-Disposition: attachment; filename="pr.txt"

PlN1Ym1pdHRlci1JZDoga291c3UKPk9yaWdpbmF0b3I6IE5pY2sgR3VlbnRoZXIKPk9yZ2FuaXph
dGlvbjoKPlN5bm9wc2lzOiBmc2NrX21zZG9zIGRldGVjdHMgYSBiYWQgcGFydGl0aW9uIHdoZW4g
aXQncyBhY3R1YWxseSBva2F5Cj5TZXZlcml0eTogbm9uLWNyaXRpY2FsCj5Qcmlvcml0eTogbWVk
aXVtCj5DYXRlcmdvcnk6IHN5c3RlbQo+Q2xhc3M6IHN3LWJ1Zwo+UmVsZWFzZTogMy44LVJlbGVh
c2UKPkVudmlyb25tZW50OgoJU3lzdGVtCTogT3BlbkJTRCAzLjgKCUFyY2hpdGVjdHVyZQk6IE9w
ZW5CU0QuaTM4NgoJTWFjaGluZToJOiBpMzg2Cj5EZXNjcmlwdGlvbjoKCVJ1bm5nIGZzY2tfbXNk
b3Mgb24gRkFUMzIgcGFydGl0aW9ucyB0aGF0IGhhdmUgYmVlbiBjb3JydXB0ZWQgaW4gYQpjZXJ0
YWluIHdheSBjYXVzZXMgImJhY2t1cCBkb2Vzbid0IGNvbXBhcmUgdG8gcHJpbWFyeSBib290Ymxv
Y2siIGV2ZW4Kd2hlbiB0aGUgY29ycmVzcG9uZGluZyBtaWNyb3NvZnQgdG9vbHMgc2F5IHRoZSBk
aXNrIGlzIGNsZWFuLiBUaGlzIGlzCmJlY2F1c2UgaXQgY29tcGFyZXMgdG9vIG11Y2ggb2YgdGhl
IHByaW1hcnkgYW5kIGJhY2t1cCBib290YmxvY2tzIG9uIGEKRkFUMzIgcGFydGl0aW9uLiBJdCBz
aG91bGQgb25seSBjb21wYXJlIHRoZSBmaXJzdCA1MiBieXRlcyBidXQgaXQKY29tcGFyZXMgdGhl
IGVudGlyZXR5IG9mIHRoZSBET1MgYm9vdCBibG9jay4KPkhvdy1Uby1SZXBlYXQ6CglGb3JtYXQg
YSBuZXcgRkFUMzIgcGFydGl0aW9uIChpZGVhbGx5IHVzaW5nIG1pY3Jvc29mdCB0b29scykuIElm
IHlvdQpydW4gZnNja19tc2RvcyBvbiB0aGlzIGl0IGlzIGZpbmUgYmVjYXVzZSB0aGUgcHJpbWFy
eSBhbmQgYmFja3VwCmJvb3RibG9ja3Mgd2VyZSBib3RoIGluaXRpYWxpemVkIHRoZSBzYW1lIHdh
eSAocHJlc3VtYWJsZSB0byBudWxscykuCkhvd2V2ZXIsIGlmIHlvdSBjb3JydXB0IG9uZSBvZiB0
aGVtIChwdWxsaW5nIHRoZSBwb3dlciB3aGlsZSBpdCdzCnJ1bm5pbmcgd2lsbCBkbyB0aGlzKSBh
bmQgdGhlbiB0cnkgZnNja19tc2RvcyB5b3Ugc2VlICJiYWNrdXAgZG9lc24ndApjb21wYXJlIHRv
IHByaW1hcnkgYm9vdGJsb2NrIjsgdGhpcyBvY2N1cnMgZXZlbiBpZiB5b3UgcnVuIHNjYW5kaXNr
Cihmcm9tIHdpbmRvd3MpIG9uIHRoZSBwYXJ0aXRpb24gYmVmb3JlIHRyeWluZyBmc2NrX21zZG9z
IGJlY2F1c2UKc2NhbmRpc2sgd2lsbCBvbmx5IGZpeCB0aGUgZmlyc3QgNTIgYnl0ZXMgYW5kIGln
bm9yZXMgdGhlIHJlc3Qgb2YgdGhlCmJvb3QgYmxvY2suCj5GaXg6CglUaGUgZml4IGZvciB0aGlz
IHdhcyBhY3R1YWxseSBwcm92aWRlZCB5ZWFycyBhZ28sIGJ1dCBhcHBlYXJhbnRseSB3YXMKZm9y
Z290dGVuLCBzbyBJJ20gcmVtaW5kaW5nIHlvdS4gU2VlCmh0dHA6Ly93d3cubW9ua2V5Lm9yZy9v
cGVuYnNkL2FyY2hpdmUvYnVncy8wMTA1L21zZzAwMDg1Lmh0bWwgZm9yIHRoZQpmaXguIEJhc2lj
YWxseSwganVzdCBnbyBpbnRvIC91c3Ivc3JjL3NiaW4vZnNja19tc2Rvcy9ib290LmMgYW5kCmNo
YW5nZQppZihtZW1jbXAoYmxvY2ssIGJhY2t1cCwgRE9TQk9PVEJMT0NLU0laRSApKQp0bwppZiht
ZW1jbXAoYmxvY2ssIGJhY2t1cCwgNTIpKQpUaGVyZSdzIHNvbWV0aGluZyBlbHNlIGluIHRoYXQg
bWVzc2FnZSB0b28gdGhhdCBJIGRvbid0IHVuZGVyc3RhbmQgYnV0CmlzIHByb2JhYmx5IHdvcnRo
IGxvb2tpbmcgYXQuCgo=

--+permail-20090723102923f7e55a9d000042a4-a_best01+--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?permail-20090723102923f7e55a9d000042a4-a_best01>