diff --git a/src/dev.c b/src/dev.c index 998afb90..5c571cb2 100644 --- a/src/dev.c +++ b/src/dev.c @@ -384,8 +384,7 @@ BOOL GetOpticalMedia(IMG_SAVE* img_save) FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL); if (hDrive == INVALID_HANDLE_VALUE) continue; - if (!DeviceIoControl(hDrive, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, - NULL, 0, geometry, sizeof(geometry), &size, NULL)) + if (!DeviceIoControl(hDrive, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, geometry, sizeof(geometry), &size, NULL)) continue; // Rewritable media usually has a one sector if (DiskGeometry->DiskSize.QuadPart <= 4096) diff --git a/src/drive.c b/src/drive.c index 2b6ffca0..a00437f5 100644 --- a/src/drive.c +++ b/src/drive.c @@ -90,13 +90,12 @@ uint64_t persistence_size = 0; BOOL SetAutoMount(BOOL enable) { HANDLE hMountMgr; - DWORD size; BOOL ret = FALSE; hMountMgr = CreateFileA(MOUNTMGR_DOS_DEVICE_NAME, 0, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hMountMgr == INVALID_HANDLE_VALUE) return FALSE; - ret = DeviceIoControl(hMountMgr, IOCTL_MOUNTMGR_SET_AUTO_MOUNT, &enable, sizeof(enable), NULL, 0, &size, NULL); + ret = DeviceIoControl(hMountMgr, IOCTL_MOUNTMGR_SET_AUTO_MOUNT, &enable, sizeof(enable), NULL, 0, NULL, NULL); CloseHandle(hMountMgr); return ret; } @@ -137,7 +136,6 @@ static HANDLE GetHandle(char* Path, BOOL bLockDrive, BOOL bWriteAccess, BOOL bWr { int i; BYTE access_mask = 0; - DWORD size; uint64_t EndTime; HANDLE hDrive = INVALID_HANDLE_VALUE; char DevPath[MAX_PATH]; @@ -186,13 +184,13 @@ static HANDLE GetHandle(char* Path, BOOL bLockDrive, BOOL bWriteAccess, BOOL bWr } if (bLockDrive) { - if (DeviceIoControl(hDrive, FSCTL_ALLOW_EXTENDED_DASD_IO, NULL, 0, NULL, 0, &size, NULL)) { + if (DeviceIoControl(hDrive, FSCTL_ALLOW_EXTENDED_DASD_IO, NULL, 0, NULL, 0, NULL, NULL)) { uprintf("I/O boundary checks disabled"); } EndTime = GetTickCount64() + DRIVE_ACCESS_TIMEOUT; do { - if (DeviceIoControl(hDrive, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, &size, NULL)) + if (DeviceIoControl(hDrive, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, NULL, NULL)) goto out; if (IS_ERROR(ErrorStatus)) // User cancel break; @@ -311,8 +309,7 @@ char* GetLogicalName(DWORD DriveIndex, uint64_t PartitionOffset, BOOL bKeepTrail continue; } - r = DeviceIoControl(hDrive, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, NULL, 0, - &DiskExtents, sizeof(DiskExtents), &size, NULL); + r = DeviceIoControl(hDrive, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, NULL, 0, &DiskExtents, sizeof(DiskExtents), &size, NULL); if ((!r) || (size == 0)) { suprintf("Could not get Disk Extents: %s", r ? "(empty data)" : WindowsErrorString()); safe_closehandle(hDrive); @@ -1063,11 +1060,10 @@ int GetDriveNumber(HANDLE hDrive, char* path) BOOL s; int r = -1; - if (!DeviceIoControl(hDrive, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, NULL, 0, - &DiskExtents, sizeof(DiskExtents), &size, NULL) || (size <= 0) || (DiskExtents.NumberOfDiskExtents < 1) ) { + if (!DeviceIoControl(hDrive, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, NULL, 0, &DiskExtents, sizeof(DiskExtents), &size, NULL) || + (size <= 0) || (DiskExtents.NumberOfDiskExtents < 1)) { // DiskExtents are NO_GO (which is the case for external USB HDDs...) - s = DeviceIoControl(hDrive, IOCTL_STORAGE_GET_DEVICE_NUMBER, NULL, 0, &DeviceNumber, sizeof(DeviceNumber), - &size, NULL); + s = DeviceIoControl(hDrive, IOCTL_STORAGE_GET_DEVICE_NUMBER, NULL, 0, &DeviceNumber, sizeof(DeviceNumber), &size, NULL); if ((!s) || (size == 0)) { uprintf("Could not get device number for device %s %s", path, s ? "(empty data)" : WindowsErrorString()); return -1; @@ -1181,8 +1177,7 @@ static BOOL _GetDriveLettersAndType(DWORD DriveIndex, char* drive_letters, UINT* // handling to determine if they are fixed or removable. if ((drives_found == 0) && (drive_type != NULL)) { hPhysical = GetPhysicalHandle(DriveIndex + DRIVE_INDEX_MIN, FALSE, FALSE, FALSE); - r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, - NULL, 0, geometry, sizeof(geometry), &size, NULL); + r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, geometry, sizeof(geometry), &size, NULL); safe_closehandle(hPhysical); if (r && size > 0) { if (DiskGeometry->Geometry.MediaType == FixedMedia) @@ -1314,7 +1309,7 @@ BOOL IsDriveLetterInUse(const char drive_letter) BOOL GetDriveLabel(DWORD DriveIndex, char* letters, char** label, BOOL bSilent) { HANDLE hPhysical; - DWORD size, error; + DWORD error; static char VolumeLabel[MAX_PATH + 1] = { 0 }; char DrivePath[] = "#:\\", AutorunPath[] = "#:\\autorun.inf", *AutorunLabel = NULL; WCHAR VolumeName[MAX_PATH + 1] = { 0 }, FileSystemName[64]; @@ -1344,7 +1339,7 @@ BOOL GetDriveLabel(DWORD DriveIndex, char* letters, char** label, BOOL bSilent) // In the case of card readers with no card, users can get an annoying popup asking them // to insert media. Use IOCTL_STORAGE_CHECK_VERIFY to prevent this hPhysical = GetPhysicalHandle(DriveIndex, FALSE, FALSE, TRUE); - if (DeviceIoControl(hPhysical, IOCTL_STORAGE_CHECK_VERIFY, NULL, 0, NULL, 0, &size, NULL)) + if (DeviceIoControl(hPhysical, IOCTL_STORAGE_CHECK_VERIFY, NULL, 0, NULL, 0, NULL, NULL)) AutorunLabel = get_token_data_file("label", AutorunPath); else if (GetLastError() == ERROR_NOT_READY) suprintf("Ignoring 'autorun.inf' label for drive %c: No media", toupper(letters[0])); @@ -1386,8 +1381,7 @@ uint64_t GetDriveSize(DWORD DriveIndex) if (hPhysical == INVALID_HANDLE_VALUE) return FALSE; - r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, - NULL, 0, geometry, sizeof(geometry), &size, NULL); + r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, geometry, sizeof(geometry), &size, NULL); safe_closehandle(hPhysical); if (!r || size <= 0) return 0; @@ -1405,8 +1399,7 @@ BOOL IsMediaPresent(DWORD DriveIndex) BYTE geometry[128]; hPhysical = GetPhysicalHandle(DriveIndex, FALSE, FALSE, TRUE); - r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, - NULL, 0, geometry, sizeof(geometry), &size, NULL) && (size > 0); + r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, geometry, sizeof(geometry), &size, NULL) && (size > 0); safe_closehandle(hPhysical); return r; } @@ -1509,8 +1502,7 @@ uint64_t GetEspOffset(DWORD DriveIndex) if (hPhysical == INVALID_HANDLE_VALUE) return FALSE; - r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_LAYOUT_EX, - NULL, 0, layout, sizeof(layout), &size, NULL); + r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_LAYOUT_EX, NULL, 0, layout, sizeof(layout), &size, NULL); if (!r || size <= 0) { uprintf("Could not get layout for drive 0x%02x: %s", DriveIndex, WindowsErrorString()); goto out; @@ -1694,7 +1686,7 @@ BOOL ToggleEsp(DWORD DriveIndex, uint64_t PartitionOffset) } DriveLayout->PartitionEntry[esp_index].RewritePartition = TRUE; // Just in case - r = DeviceIoControl(hPhysical, IOCTL_DISK_SET_DRIVE_LAYOUT_EX, (BYTE*)DriveLayout, dl_size, NULL, 0, &dl_size, NULL); + r = DeviceIoControl(hPhysical, IOCTL_DISK_SET_DRIVE_LAYOUT_EX, (BYTE*)DriveLayout, dl_size, NULL, 0, NULL, NULL); if (!r) { uprintf("Could not set drive layout: %s", WindowsErrorString()); goto out; @@ -1881,8 +1873,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys if (hPhysical == INVALID_HANDLE_VALUE) return FALSE; - r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, - NULL, 0, geometry, sizeof(geometry), &size, NULL); + r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, geometry, sizeof(geometry), &size, NULL); if (!r || size <= 0) { suprintf("Could not get geometry for drive 0x%02x: %s", DriveIndex, WindowsErrorString()); safe_closehandle(hPhysical); @@ -1904,8 +1895,7 @@ BOOL GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSys suprintf("Cylinders: %" PRIi64 ", Tracks per cylinder: %d, Sectors per track: %d", DiskGeometry->Geometry.Cylinders, DiskGeometry->Geometry.TracksPerCylinder, DiskGeometry->Geometry.SectorsPerTrack); - r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_LAYOUT_EX, - NULL, 0, layout, sizeof(layout), &size, NULL ); + r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_LAYOUT_EX, NULL, 0, layout, sizeof(layout), &size, NULL ); if (!r || size <= 0) { suprintf("Could not get layout for drive 0x%02x: %s", DriveIndex, WindowsErrorString()); safe_closehandle(hPhysical); @@ -2062,9 +2052,7 @@ out: */ BOOL UnmountVolume(HANDLE hDrive) { - DWORD size; - - if (!DeviceIoControl(hDrive, FSCTL_DISMOUNT_VOLUME, NULL, 0, NULL, 0, &size, NULL)) { + if (!DeviceIoControl(hDrive, FSCTL_DISMOUNT_VOLUME, NULL, 0, NULL, 0, NULL, NULL)) { uprintf("Could not unmount drive: %s", WindowsErrorString()); return FALSE; } @@ -2355,7 +2343,6 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m mi = partition_index[PI_MAIN]; wcscpy(SelectedDrive.Partition[mi].Name, write_as_esp ? L"EFI System Partition" : L"Main Data Partition"); - if (extra_partitions) { // Adjust the size according to extra partitions (which we always align to a track) // TODO: Should we align these to cluster as well? @@ -2377,8 +2364,10 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m wcscpy(SelectedDrive.Partition[pi].Name, L"BIOS Compatibility"); SelectedDrive.Partition[pi++].Size = bytes_per_track; // One track for the extra partition } - assert(pi <= MAX_PARTITIONS); } + assert(pi <= MAX_PARTITIONS); + if (pi > MAX_PARTITIONS) + return FALSE; // Compute the offsets of the extra partitions (which we always align to a track) last_offset = SelectedDrive.DiskSize; @@ -2506,7 +2495,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m // This helps us reselect the partition scheme option that was used when creating the // drive in Rufus. As far as I can tell, Windows doesn't care much if this signature // isn't unique for USB drives. - CreateDisk.Mbr.Signature = mbr_uefi_marker?MBR_UEFI_MARKER:(DWORD)GetTickCount64(); + CreateDisk.Mbr.Signature = mbr_uefi_marker ? MBR_UEFI_MARKER : (DWORD)GetTickCount64(); DriveLayoutEx.PartitionStyle = PARTITION_STYLE_MBR; DriveLayoutEx.PartitionCount = 4; // Must be multiple of 4 for MBR @@ -2528,7 +2517,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m DriveLayoutEx.PartitionCount = pi; // At the very least, a GPT disk has 34 reserved sectors at the beginning and 33 at the end. DriveLayoutEx.Type.Gpt.StartingUsableOffset.QuadPart = 34 * SelectedDrive.SectorSize; - DriveLayoutEx.Type.Gpt.UsableLength.QuadPart = SelectedDrive.DiskSize - (34+33) * SelectedDrive.SectorSize; + DriveLayoutEx.Type.Gpt.UsableLength.QuadPart = SelectedDrive.DiskSize - (34 + 33) * SelectedDrive.SectorSize; DriveLayoutEx.Type.Gpt.MaxPartitionCount = MAX_PARTITIONS; DriveLayoutEx.Type.Gpt.DiskId = CreateDisk.Gpt.DiskId; break; @@ -2536,7 +2525,7 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m // If you don't call IOCTL_DISK_CREATE_DISK, the IOCTL_DISK_SET_DRIVE_LAYOUT_EX call will fail size = sizeof(CreateDisk); - if (!DeviceIoControl(hDrive, IOCTL_DISK_CREATE_DISK, (BYTE*)&CreateDisk, size, NULL, 0, &size, NULL)) { + if (!DeviceIoControl(hDrive, IOCTL_DISK_CREATE_DISK, (BYTE*)&CreateDisk, size, NULL, 0, NULL, NULL)) { uprintf("Could not reset disk: %s", WindowsErrorString()); return FALSE; } @@ -2545,8 +2534,10 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m RefreshDriveLayout(hDrive); size = sizeof(DriveLayoutEx) - ((partition_style == PARTITION_STYLE_GPT) ? - ((4 - pi) * sizeof(PARTITION_INFORMATION_EX)) : 0); - if (!DeviceIoControl(hDrive, IOCTL_DISK_SET_DRIVE_LAYOUT_EX, (BYTE*)&DriveLayoutEx, size, NULL, 0, &size, NULL)) { + ((MAX_PARTITIONS - pi) * sizeof(PARTITION_INFORMATION_EX)) : 0); + // The DRIVE_LAYOUT_INFORMATION_EX used by Microsoft, with its 1-sized array, is designed to overrun... + // coverity[overrun-buffer-arg] + if (!DeviceIoControl(hDrive, IOCTL_DISK_SET_DRIVE_LAYOUT_EX, (BYTE*)&DriveLayoutEx, size, NULL, 0, NULL, NULL)) { uprintf("Could not set drive layout: %s", WindowsErrorString()); return FALSE; } @@ -2560,10 +2551,9 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m BOOL RefreshDriveLayout(HANDLE hDrive) { BOOL r; - DWORD size; // Diskpart does call the following IOCTL this after updating the partition table, so we do too - r = DeviceIoControl(hDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, &size, NULL ); + r = DeviceIoControl(hDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, NULL, NULL); if (!r) uprintf("Could not refresh drive layout: %s", WindowsErrorString()); return r; @@ -2573,20 +2563,17 @@ BOOL RefreshDriveLayout(HANDLE hDrive) BOOL InitializeDisk(HANDLE hDrive) { BOOL r; - DWORD size; CREATE_DISK CreateDisk = {PARTITION_STYLE_RAW, {{0}}}; uprintf("Initializing disk..."); - size = sizeof(CreateDisk); - r = DeviceIoControl(hDrive, IOCTL_DISK_CREATE_DISK, - (BYTE*)&CreateDisk, size, NULL, 0, &size, NULL ); + r = DeviceIoControl(hDrive, IOCTL_DISK_CREATE_DISK, (BYTE*)&CreateDisk, sizeof(CreateDisk), NULL, 0, NULL, NULL); if (!r) { uprintf("Could not delete drive layout: %s", WindowsErrorString()); return FALSE; } - r = DeviceIoControl(hDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, &size, NULL ); + r = DeviceIoControl(hDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, NULL, NULL); if (!r) { uprintf("Could not refresh drive layout: %s", WindowsErrorString()); return FALSE; @@ -2629,8 +2616,7 @@ BOOL IsMsDevDrive(DWORD DriveIndex) if (hPhysical == INVALID_HANDLE_VALUE) goto out; - r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_LAYOUT_EX, - NULL, 0, layout, sizeof(layout), &size, NULL); + r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_LAYOUT_EX, NULL, 0, layout, sizeof(layout), &size, NULL); if (!r || size <= 0) goto out; diff --git a/src/drive.h b/src/drive.h index 0a543660..01e9c6b8 100644 --- a/src/drive.h +++ b/src/drive.h @@ -348,8 +348,7 @@ typedef struct _DRIVE_LAYOUT_INFORMATION_EX4 { } DRIVE_LAYOUT_INFORMATION_EX4, *PDRIVE_LAYOUT_INFORMATION_EX4; static __inline BOOL UnlockDrive(HANDLE hDrive) { - DWORD size; - return DeviceIoControl(hDrive, FSCTL_UNLOCK_VOLUME, NULL, 0, NULL, 0, &size, NULL); + return DeviceIoControl(hDrive, FSCTL_UNLOCK_VOLUME, NULL, 0, NULL, 0, NULL, NULL); } #define safe_unlockclose(h) do {if ((h != INVALID_HANDLE_VALUE) && (h != NULL)) {UnlockDrive(h); CloseHandle(h); h = INVALID_HANDLE_VALUE;}} while(0) diff --git a/src/format.c b/src/format.c index 256ee539..8126a639 100644 --- a/src/format.c +++ b/src/format.c @@ -771,8 +771,7 @@ out: static BOOL WriteMBR(HANDLE hPhysicalDrive) { BOOL r = FALSE; - DWORD size; - unsigned char* buffer = NULL; + uint8_t* buffer = NULL; FAKE_FD fake_fd = { 0 }; FILE* fp = (FILE*)&fake_fd; const char* using_msg = "Using %s MBR"; @@ -791,7 +790,7 @@ static BOOL WriteMBR(HANDLE hPhysicalDrive) // FormatEx rewrites the MBR and removes the LBA attribute of FAT16 // and FAT32 partitions - we need to correct this in the MBR - buffer = (unsigned char*)_mm_malloc(SelectedDrive.SectorSize, 16); + buffer = (uint8_t*)_mm_malloc(SelectedDrive.SectorSize, 16); if (buffer == NULL) { uprintf("Could not allocate memory for MBR"); ErrorStatus = RUFUS_ERROR(ERROR_NOT_ENOUGH_MEMORY); @@ -897,7 +896,7 @@ windows_mbr: notify: // Tell the system we've updated the disk properties - if (!DeviceIoControl(hPhysicalDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, &size, NULL)) + if (!DeviceIoControl(hPhysicalDrive, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, NULL, NULL)) uprintf("Failed to notify system about disk properties update: %s", WindowsErrorString()); out: diff --git a/src/icon.c b/src/icon.c index 908feda1..7579050c 100644 --- a/src/icon.c +++ b/src/icon.c @@ -101,6 +101,9 @@ BOOL ExtractAppIcon(const char* path, BOOL bSilent) GRPICONDIR* icondir; icondir = (GRPICONDIR*)GetResource(hMainInstance, MAKEINTRESOURCEA(IDI_ICON), _RT_GROUP_ICON, "icon", &res_size, FALSE); + assert(icondir != NULL && icondir->idCount <= 64); + if (icondir == NULL || icondir->idCount > 64) + goto out; hFile = CreateFileU(path, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); @@ -116,8 +119,8 @@ BOOL ExtractAppIcon(const char* path, BOOL bSilent) } // Write icon data - offset = 3*sizeof(WORD) + icondir->idCount * sizeof(ICONDIRENTRY); - for (i=0; iidCount; i++) { + offset = 3 * sizeof(WORD) + icondir->idCount * sizeof(ICONDIRENTRY); + for (i = 0; i < icondir->idCount; i++) { // Write the common part of ICONDIRENTRY if (!WriteFileWithRetry(hFile, &icondir->idEntries[i], sizeof(GRPICONDIRENTRY)-sizeof(WORD), NULL, WRITE_RETRIES)) { uprintf("Could not write ICONDIRENTRY[%d]: %s.", i, WindowsErrorString()); @@ -131,7 +134,7 @@ BOOL ExtractAppIcon(const char* path, BOOL bSilent) } offset += SizeofResource(NULL, res); } - for (i=0; iidCount; i++) { + for (i = 0; i < icondir->idCount; i++) { // Write icon data res = FindResourceA(hMainInstance, MAKEINTRESOURCEA(icondir->idEntries[i].nID), _RT_ICON); res_handle = LoadResource(NULL, res); diff --git a/src/rufus.h b/src/rufus.h index 82903838..72ddf8c9 100644 --- a/src/rufus.h +++ b/src/rufus.h @@ -737,7 +737,7 @@ extern uint16_t GetSyslinuxVersion(char* buf, size_t buf_size, char** ext); extern BOOL SetAutorun(const char* path); extern char* FileDialog(BOOL save, char* path, const ext_t* ext, UINT* selected_ext); extern BOOL FileIO(enum file_io_type io_type, char* path, char** buffer, DWORD* size); -extern unsigned char* GetResource(HMODULE module, char* name, char* type, const char* desc, DWORD* len, BOOL duplicate); +extern uint8_t* GetResource(HMODULE module, char* name, char* type, const char* desc, DWORD* len, BOOL duplicate); extern DWORD GetResourceSize(HMODULE module, char* name, char* type, const char* desc); extern DWORD RunCommandWithProgress(const char* cmdline, const char* dir, BOOL log, int msg); #define RunCommand(cmd, dir, log) RunCommandWithProgress(cmd, dir, log, 0) diff --git a/src/rufus.rc b/src/rufus.rc index 0d494913..db1b85e5 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 232, 326 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_ACCEPTFILES -CAPTION "Rufus 4.5.2121" +CAPTION "Rufus 4.5.2122" FONT 9, "Segoe UI Symbol", 400, 0, 0x0 BEGIN LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP @@ -397,8 +397,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 4,5,2121,0 - PRODUCTVERSION 4,5,2121,0 + FILEVERSION 4,5,2122,0 + PRODUCTVERSION 4,5,2122,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -416,13 +416,13 @@ BEGIN VALUE "Comments", "https://rufus.ie" VALUE "CompanyName", "Akeo Consulting" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "4.5.2121" + VALUE "FileVersion", "4.5.2122" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "� 2011-2024 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html" VALUE "OriginalFilename", "rufus-4.5.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "4.5.2121" + VALUE "ProductVersion", "4.5.2122" END END BLOCK "VarFileInfo" diff --git a/src/stdfn.c b/src/stdfn.c index e02df860..2dd57632 100644 --- a/src/stdfn.c +++ b/src/stdfn.c @@ -743,12 +743,12 @@ out: * size is allocated for the resource. Else the buffer is allocate for * the resource size. */ -unsigned char* GetResource(HMODULE module, char* name, char* type, const char* desc, DWORD* len, BOOL duplicate) +uint8_t* GetResource(HMODULE module, char* name, char* type, const char* desc, DWORD* len, BOOL duplicate) { HGLOBAL res_handle; HRSRC res; DWORD res_len; - unsigned char* p = NULL; + uint8_t* p = NULL; res = FindResourceA(module, name, type); if (res == NULL) { @@ -765,7 +765,7 @@ unsigned char* GetResource(HMODULE module, char* name, char* type, const char* d if (duplicate) { if (*len == 0) *len = res_len; - p = (unsigned char*)calloc(*len, 1); + p = calloc(*len, 1); if (p == NULL) { uprintf("Could not allocate resource '%s'", desc); goto out; @@ -774,7 +774,7 @@ unsigned char* GetResource(HMODULE module, char* name, char* type, const char* d if (res_len > *len) uprintf("WARNING: Resource '%s' was truncated by %d bytes!", desc, res_len - *len); } else { - p = (unsigned char*)LockResource(res_handle); + p = LockResource(res_handle); } *len = res_len;