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
- 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
- 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
- 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