git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More work on Ext2 write (and fixed an error made earlier)
[tpg/acess2.git]
/
Modules
/
Filesystems
/
Ext2
/
ext2.c
diff --git
a/Modules/Filesystems/Ext2/ext2.c
b/Modules/Filesystems/Ext2/ext2.c
index
ac3d7e5
..
aa15e10
100644
(file)
--- a/
Modules/Filesystems/Ext2/ext2.c
+++ b/
Modules/Filesystems/Ext2/ext2.c
@@
-320,15
+320,17
@@
void Ext2_int_UpdateSuperblock(tExt2_Disk *Disk)
if(ngrp <= 1) return;
\r
VFS_WriteAt(Disk->FD, 1*bpg*Disk->BlockSize, 1024, &Disk->SuperBlock);
\r
\r
if(ngrp <= 1) return;
\r
VFS_WriteAt(Disk->FD, 1*bpg*Disk->BlockSize, 1024, &Disk->SuperBlock);
\r
\r
+ #define INT_MAX (((long long int)1<<(sizeof(int)*8))-1)
\r
+
\r
// Powers of 3
\r
// Powers of 3
\r
- for( i = 3; i < ngrp; i *= 3 )
\r
+ for( i = 3; i < ngrp
&& i < INT_MAX
; i *= 3 )
\r
VFS_WriteAt(Disk->FD, i*bpg*Disk->BlockSize, 1024, &Disk->SuperBlock);
\r
\r
// Powers of 5
\r
VFS_WriteAt(Disk->FD, i*bpg*Disk->BlockSize, 1024, &Disk->SuperBlock);
\r
\r
// Powers of 5
\r
- for( i = 5; i < ngrp; i *= 5 )
\r
+ for( i = 5; i < ngrp
&& i < INT_MAX/5
; i *= 5 )
\r
VFS_WriteAt(Disk->FD, i*bpg*Disk->BlockSize, 1024, &Disk->SuperBlock);
\r
\r
// Powers of 7
\r
VFS_WriteAt(Disk->FD, i*bpg*Disk->BlockSize, 1024, &Disk->SuperBlock);
\r
\r
// Powers of 7
\r
- for( i = 7; i < ngrp; i *= 7 )
\r
+ for( i = 7; i < ngrp
&& i < INT_MAX/7
; i *= 7 )
\r
VFS_WriteAt(Disk->FD, i*bpg*Disk->BlockSize, 1024, &Disk->SuperBlock);
\r
}
\r
VFS_WriteAt(Disk->FD, i*bpg*Disk->BlockSize, 1024, &Disk->SuperBlock);
\r
}
\r
UCC
git Repository :: git.ucc.asn.au