-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lack of examine the FAT table in FAT driver causes a BIOS hang when calling fs->OpenVolume() (Bugzilla Bug 1452) #9679
Comments
Comment 6060Date: 2019-01-11 17:06:43 +0000
Created attachment 245 BIOS would hang when calling OpenVolume() to open a FAT32 partition formatted by newfs tool in Solaris. See attached file for Fat Table and Fat boot sector. This partition has a valid FAT boot sector, while its FAT table has something invalid. Since FAT driver does not examine the FAT ID and End of Chain field in the FAT table before consuming the FAT data, it eventually hang in the while loop as above. Code calling path: FatOpenVolume()->FatOpenDirEnt()->FatPhysicalDirSize()->FatGetFatEntry() Proposed fix (See Addtional Checks >>): VOID * { if (Index > (Volume->MaxCluster + 1)) { case FAT16: default:
} return &Volume->FatEntryBuffer; Attachment: BZ-245-1.jpg |
Comment 6137Date: 2019-01-17 19:21:18 +0000 bug scrub: assign to module owner |
Comment 6232Date: 2019-01-29 14:20:57 +0000 Please update status. |
Comment 6240Date: 2019-01-30 02:52:30 +0000 (In reply to Oleksiy from comment #2) Hi Oleksiy, I think your analysis is right that the EnhancedFatDxe driver misses the Since you already have a fix for this issue here, could you help to https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Development-Process Also, for the additional checks on the first & second Fat entry you Another thing is that, could you also help to place the same checks at the Your contribution will be appreciated. Best Regards, |
Comment 7628Date: 2019-05-17 13:10:57 +0000 Comment on attachment 245 comment Attachment: BZ-245-1.jpg |
Comment 7630Date: 2019-05-17 13:11:27 +0000 Created attachment 329 comment Attachment: BZ-329-John |
Comment 7631Date: 2019-05-17 13:11:29 +0000 Comment on attachment 245 comment Attachment: BZ-245-1.jpg |
Comment 7638Date: 2019-05-17 13:12:25 +0000 Comment on attachment 329 comment Attachment: BZ-329-John |
Comment 7639Date: 2019-05-17 13:12:30 +0000 Comment on attachment 329 comment Attachment: BZ-329-John |
Comment 7673Date: 2019-05-17 15:49:52 +0000 change back to hao. |
Comment 9375Date: 2019-08-28 11:44:47 +0000 (In reply to Hao Wu from comment #3) Hi Hao. I must miss you comment on this. Sorry I do not have time, equipment to test and expertise to check/implement your remarks. Regards, Oleksiy. |
Comment 9408Date: 2019-08-29 23:02:37 +0000 Thanks for the information Oleksiy. I will queue this one into my task. |
Comment 18305Date: 2022-02-09 20:39:30 +0000 Assignee to unassigned. |
There are two reserved FAT entries in the FAT filesystem that are expected to have valid contents in them. Today the FAT drivers do not validate these entries when reading from a device for the first time. This can cause infinite loops in the FAT driver when trying to read corrupted disks as reported in tianocore#9679. This PR follows the recommended update requested in that bug to check the two reserved FAT entries and validate their contents against the spec defined values in both FatPei and EnhancedFatDxe when opening a device for the first time. Signed-off-by: Oliver Smith-Denny <[email protected]>
There are two reserved FAT entries in the FAT filesystem that are expected to have valid contents in them. Today the FAT drivers do not validate these entries when reading from a device for the first time. This can cause infinite loops in the FAT driver when trying to read corrupted disks as reported in tianocore#9679. This PR follows the recommended update requested in that bug to check the two reserved FAT entries and validate their contents against the spec defined values in both FatPei and EnhancedFatDxe when opening a device for the first time. Signed-off-by: Oliver Smith-Denny <[email protected]>
There are two reserved FAT entries in the FAT filesystem that are expected to have valid contents in them. Today the FAT drivers do not validate these entries when reading from a device for the first time. This can cause infinite loops in the FAT driver when trying to read corrupted disks as reported in tianocore#9679. This PR follows the recommended update requested in that bug to check the two reserved FAT entries and validate their contents against the spec defined values in both FatPei and EnhancedFatDxe when opening a device for the first time. Signed-off-by: Oliver Smith-Denny <[email protected]>
There are two reserved FAT entries in the FAT filesystem that are expected to have valid contents in them. Today the FAT drivers do not validate these entries when reading from a device for the first time. This can cause infinite loops in the FAT driver when trying to read corrupted disks as reported in tianocore#9679. This PR follows the recommended update requested in that bug to check the two reserved FAT entries and validate their contents against the spec defined values in both FatPei and EnhancedFatDxe when opening a device for the first time. Signed-off-by: Oliver Smith-Denny <[email protected]>
This issue was created automatically with bugzilla2github
Bugzilla Bug 1452
Date: 2019-01-11T17:06:43+00:00
From: Oleksiy <>
To: unassigned <>
CC: shala.arshi, yonghong.zhu
Last updated: 2022-02-09T20:39:30+00:00
The text was updated successfully, but these errors were encountered: