diff --git a/reactos/tools/fatten/fatfs/diskio.c b/reactos/tools/fatten/fatfs/diskio.c index c77dd2084f2..98d2aee57f0 100644 --- a/reactos/tools/fatten/fatfs/diskio.c +++ b/reactos/tools/fatten/fatfs/diskio.c @@ -30,7 +30,7 @@ DSTATUS disk_openimage(BYTE pdrv, const char* imageFileName) driveHandle[0] = fopen(imageFileName, "r+b"); if (!driveHandle[0]) { - driveHandle[0] = fopen(imageFileName, "w+"); + driveHandle[0] = fopen(imageFileName, "w+b"); } if (driveHandle[0] != NULL) diff --git a/reactos/tools/fatten/fatten.c b/reactos/tools/fatten/fatten.c index 429e2244c33..9e07172b944 100644 --- a/reactos/tools/fatten/fatten.c +++ b/reactos/tools/fatten/fatten.c @@ -232,8 +232,10 @@ int main(int oargc, char* oargv[]) } else { - // Quick&dirty hardcoded length. - memcpy(buff + 2, temp + 2, 0x3E - 0x02); +#define FAT16_HEADER_START 3 +#define FAT16_HEADER_END 62 + + memcpy(buff + FAT16_HEADER_START, temp + FAT16_HEADER_START, FAT16_HEADER_END - FAT16_HEADER_START); } if (disk_write(0, buff, 0, 1))