Chameleon

Chameleon Commit Details

Date:2014-12-31 03:27:24 (5 years 1 month ago)
Author:ErmaC
Commit:2523
Parents: 2522
Message:Change to disk.c - Prevent getOSVersion from looking for SystemVersion.plist on FAT32 or exFAT file systems - since those filesystems never serve as system volumes. UFS may serve as system volume, but there's no driver to read from it. Change to sys.c - Eliminate a dubious recursion in diskScanBootVolumes(). It recognises the filesystem, then calls getOSVersion, which attempts to open 5 files in order to find SystemVersion - then when parsing the device name - calls diskScanBootVolumes() - as a form of on-demand scanning. This doesn't result in an infinite recursion - because the volume is already in the map. However, this auto-scan is only useful if user enters an explicit hd(X,Y) device-spec that has never been scanned before - an unlikely occurrence.
Changes:
M/trunk/i386/libsaio/disk.c
M/trunk/CHANGES
M/trunk/i386/libsaio/sys.c

File differences

trunk/i386/libsaio/sys.c
12471247
12481248
12491249
1250
1250
12511251
1252
12521253
12531254
12541255
else
{
// Fetch the volume list from the device.
#if 0
scanBootVolumes( biosdev, NULL );
#endif
bvrChain = getBVChainForBIOSDev(biosdev);
// Look for a perfect match based on device and partition number.
trunk/i386/libsaio/disk.c
16321632
16331633
16341634
1635
1636
1637
1638
1639
1640
1641
1642
16351643
16361644
16371645
config_file_t systemVersion;
char dirSpec[512];
/*
* Only look for OS Version on HFS+
*/
if (bvr->fs_readfile != HFSReadFile)
{
return valid;
}
// OS X Recovery
sprintf(dirSpec, "hd(%d,%d)/com.apple.recovery.boot/SystemVersion.plist", BIOS_DEV_UNIT(bvr), bvr->part_no);
trunk/CHANGES
1
2
3
14
25
36
- Zenith432 : Change to disk.c - Prevent getOSVersion from looking for SystemVersion.plist on FAT32 or exFAT file systems - since those filesystems never serve as system volumes.
UFS may serve as system volume, but there's no driver to read from it.
Change to sys.c - Eliminate a dubious recursion in diskScanBootVolumes(). It recognises the filesystem, then calls getOSVersion, which attempts to open 5 files in order to find SystemVersion - then when parsing the device name - calls diskScanBootVolumes() - as a form of on-demand scanning. This doesn't result in an infinite recursion - because the volume is already in the map. However, this auto-scan is only useful if user enters an explicit hd(X,Y) device-spec that has never been scanned before - an unlikely occurrence.
- Zenith432 : Patch from Issue 388, init_module_system() in modules.c dereferences NULL pointer
- Zenith432 : Full implementation of exfat support for Chameleon's boot2 stage.
- Micky1979 : Incorporated force umount option -u (boot1-install.c)

Archive Download the corresponding diff file

Revision: 2523