Chameleon

Chameleon Commit Details

Date:2014-11-29 17:19:56 (4 years 6 months ago)
Author:ErmaC
Commit:2503
Parents: 2502
Message:security, stability, bugs fixes credits to cparm
Changes:
M/branches/ErmaC/Enoch/CHANGES
M/branches/ErmaC/Enoch/i386/libsaio/sys.c
M/branches/ErmaC/Enoch/i386/libsaio/disk.c
M/branches/ErmaC/Enoch/i386/libsaio/ntfs.c

File differences

branches/ErmaC/Enoch/i386/libsaio/ntfs.c
313313
314314
315315
316
316317
317318
318319
......
329330
330331
331332
333
332334
333335
334336
335337
336338
337339
340
338341
339342
340343
{
return -1;
}
bzero(buf,MAX_BLOCK_SIZE);
/*
* Read the boot sector, check signatures, and do some minimal
if ( memcmp((void*)boot->bf_sysid, NTFS_BBID, NTFS_BBIDLEN) != 0 )
{
// If not NTFS, maybe it is EXFAT
free(buf);
return EXFATGetUUID(ih, uuidStr);
}
// Check for non-null volume serial number
if( !boot->bf_volsn )
{
free(buf);
return -1;
}
branches/ErmaC/Enoch/i386/libsaio/sys.c
926926
927927
928928
929
930
931
932
929933
930934
931935
......
943947
944948
945949
950
951
952
953
946954
947955
948956
......
960968
961969
962970
971
972
973
974
963975
964976
965977
......
9991011
10001012
10011013
1014
1015
1016
1017
10021018
10031019
10041020
{
for ( bvr = chain; bvr; bvr = bvr->next )
{
if (!bvr)
{
break;
}
if ( bvr->part_no == multiboot_partition && bvr->biosdev == gBIOSDev )
{
return bvr;
{
for ( bvr = chain; bvr; bvr = bvr->next )
{
if (!bvr)
{
break;
}
if (matchVolumeToString(bvr, val, false))
{
free(val);
*/
for ( bvr = chain; bvr; bvr = bvr->next )
{
if (!bvr)
{
break;
}
if (multiboot_skip_partition_set)
{
if (bvr->part_no == multiboot_skip_partition)
{
for ( bvr = chain; bvr; bvr = bvr->next )
{
if (!bvr)
{
break;
}
if ( bvr->flags & kBVFlagNativeBoot && bvr->biosdev == gBIOSDev )
{
bvr1 = bvr;
branches/ErmaC/Enoch/i386/libsaio/disk.c
17661766
17671767
17681768
1769
1770
1771
1772
17691773
17701774
17711775
......
17981802
17991803
18001804
1801
1805
1806
18021807
18031808
18041809
......
19341939
19351940
19361941
1942
1943
19371944
19381945
19391946
......
19962003
19972004
19982005
2006
2007
2008
2009
19992010
20002011
20012012
......
20182029
20192030
20202031
2032
2033
2034
2035
20212036
20222037
20232038
void rescanBIOSDevice(int biosdev)
{
struct DiskBVMap *oldMap = diskResetBootVolumes(biosdev);
if (oldMap == NULL)
{
return;
}
CacheReset();
diskFreeMap(oldMap);
oldMap = NULL;
}
else
{
stop("");
stop("diskResetBootVolumes error\n");
return NULL;
}
}
// Return the old map, either to be freed, or reinserted later
{
continue;
}
bzero(newBVR,sizeof(*newBVR));
bcopy(bvr, newBVR, sizeof(*newBVR));
/*
#if DEBUG //Azi: warning - too big for boot-log.. far too big.. i mean HUGE!! :P
for (bvr = chain; bvr; bvr = bvr->next)
{
if (!bvr)
{
break;
}
printf(" bvr: %d, dev: %d, part: %d, flags: %d, vis: %d\n", bvr, bvr->biosdev, bvr->part_no, bvr->flags, bvr->visible);
}
printf("count: %d\n", bvCount);
while (bvr)
{
if (!bvr)
{
break;
}
nextBVR = bvr->next;
if (bvr->filtered)
branches/ErmaC/Enoch/CHANGES
1
12
23
34
- cparm : Merge (security, stability, bugs fixes) improvements.
- Zenith432 : Completed patch for ExFAT support ( http://www.insanelymac.com/forum/topic/302938-exfat-volume-boot-record-for-chameleon )
- Zenith432 : add EXFAT boot support by Zenith432
- zenith432 : Merge patch from issue 386 (boot2 does not know how to read files from FAT partitions on GPT)

Archive Download the corresponding diff file

Revision: 2503