mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[misc] fix VS2012 Code Analysis warnings
* Only for files that aren't part of external dependencies * Also update copyright date
This commit is contained in:
		
							parent
							
								
									ae43dfd721
								
							
						
					
					
						commit
						c4cb9d03c1
					
				
					 12 changed files with 76 additions and 38 deletions
				
			
		|  | @ -7,7 +7,7 @@ | ||||||
|  * |  * | ||||||
|  * Copyright 1995, 1996, 1997, 1998, 1999 by Theodore Ts'o |  * Copyright 1995, 1996, 1997, 1998, 1999 by Theodore Ts'o | ||||||
|  * Copyright 1999 by David Beattie |  * Copyright 1999 by David Beattie | ||||||
|  * Copyright 2011-2012 by Pete Batard |  * Copyright 2011-2013 by Pete Batard | ||||||
|  * |  * | ||||||
|  * This file is based on the minix file system programs fsck and mkfs |  * This file is based on the minix file system programs fsck and mkfs | ||||||
|  * written and copyrighted by Linus Torvalds <Linus.Torvalds@cs.helsinki.fi> |  * written and copyrighted by Linus Torvalds <Linus.Torvalds@cs.helsinki.fi> | ||||||
|  | @ -121,6 +121,7 @@ static errcode_t bb_u64_list_add(bb_u64_list bb, uint64_t blk) | ||||||
| 			bb->size -= 100; | 			bb->size -= 100; | ||||||
| 			return BB_ET_NO_MEMORY; | 			return BB_ET_NO_MEMORY; | ||||||
| 		} | 		} | ||||||
|  | 		memset(&bb->list[bb->size-100], 0, 100 * sizeof(uint64_t)); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/*
 | 	/*
 | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								src/dos.c
									
										
									
									
									
								
							
							
						
						
									
										19
									
								
								src/dos.c
									
										
									
									
									
								
							|  | @ -2,7 +2,7 @@ | ||||||
|  * Rufus: The Reliable USB Formatting Utility |  * Rufus: The Reliable USB Formatting Utility | ||||||
|  * DOS boot file extraction, from the FAT12 floppy image in diskcopy.dll |  * DOS boot file extraction, from the FAT12 floppy image in diskcopy.dll | ||||||
|  * (MS WinME DOS) or from the embedded FreeDOS resource files |  * (MS WinME DOS) or from the embedded FreeDOS resource files | ||||||
|  * Copyright (c) 2011-2012 Pete Batard <pete@akeo.ie> |  * Copyright (c) 2011-2013 Pete Batard <pete@akeo.ie> | ||||||
|  *  |  *  | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
|  * it under the terms of the GNU General Public License as published by |  * it under the terms of the GNU General Public License as published by | ||||||
|  | @ -178,7 +178,10 @@ static BOOL Patch_COMMAND_COM(HANDLE hFile) | ||||||
| 		return FALSE; | 		return FALSE; | ||||||
| 	} | 	} | ||||||
| 	SetFilePointer(hFile, 0x650c, NULL, FILE_BEGIN); | 	SetFilePointer(hFile, 0x650c, NULL, FILE_BEGIN); | ||||||
| 	ReadFile(hFile, data, size, &size, NULL); | 	if (!ReadFile(hFile, data, size, &size, NULL)) { | ||||||
|  | 		uprintf("  could not read data\n"); | ||||||
|  | 		return FALSE; | ||||||
|  | 	} | ||||||
| 	if (memcmp(data, expected, sizeof(expected)) != 0) { | 	if (memcmp(data, expected, sizeof(expected)) != 0) { | ||||||
| 		uprintf("  unexpected binary data\n"); | 		uprintf("  unexpected binary data\n"); | ||||||
| 		return FALSE; | 		return FALSE; | ||||||
|  | @ -202,7 +205,10 @@ static BOOL Patch_IO_SYS(HANDLE hFile) | ||||||
| 		return FALSE; | 		return FALSE; | ||||||
| 	} | 	} | ||||||
| 	SetFilePointer(hFile, 0x3a8, NULL, FILE_BEGIN); | 	SetFilePointer(hFile, 0x3a8, NULL, FILE_BEGIN); | ||||||
| 	ReadFile(hFile, data, size, &size, NULL); | 	if (!ReadFile(hFile, data, size, &size, NULL)) { | ||||||
|  | 		uprintf("  could not read data\n"); | ||||||
|  | 		return FALSE; | ||||||
|  | 	} | ||||||
| 	if (memcmp(data, expected, sizeof(expected)) != 0) { | 	if (memcmp(data, expected, sizeof(expected)) != 0) { | ||||||
| 		uprintf("  unexpected binary data\n"); | 		uprintf("  unexpected binary data\n"); | ||||||
| 		return FALSE; | 		return FALSE; | ||||||
|  | @ -307,6 +313,7 @@ static BOOL ExtractMSDOS(const char* path) | ||||||
| 	int i, j; | 	int i, j; | ||||||
| 	BOOL r = TRUE; | 	BOOL r = TRUE; | ||||||
| 	HMODULE hDLL; | 	HMODULE hDLL; | ||||||
|  | 	HGLOBAL hRes; | ||||||
| 	HRSRC hDiskImage; | 	HRSRC hDiskImage; | ||||||
| 	char locale_path[MAX_PATH]; | 	char locale_path[MAX_PATH]; | ||||||
| 	char* extractlist[] = { "MSDOS   SYS", "COMMAND COM", "IO      SYS", "MODE    COM", | 	char* extractlist[] = { "MSDOS   SYS", "COMMAND COM", "IO      SYS", "MODE    COM", | ||||||
|  | @ -331,8 +338,10 @@ static BOOL ExtractMSDOS(const char* path) | ||||||
| 		FreeLibrary(hDLL); | 		FreeLibrary(hDLL); | ||||||
| 		return FALSE; | 		return FALSE; | ||||||
| 	} | 	} | ||||||
| 	DiskImage = (BYTE*)LockResource(LoadResource(hDLL, hDiskImage)); | 	hRes = LoadResource(hDLL, hDiskImage); | ||||||
| 	if (DiskImage == NULL) { | 	if (hRes != NULL) | ||||||
|  | 		DiskImage = (BYTE*)LockResource(hRes); | ||||||
|  | 	if ((hRes == NULL) || (DiskImage == NULL) ){ | ||||||
| 		uprintf("Unable to access disk image in %s: %s\n", dllname, WindowsErrorString()); | 		uprintf("Unable to access disk image in %s: %s\n", dllname, WindowsErrorString()); | ||||||
| 		FreeLibrary(hDLL); | 		FreeLibrary(hDLL); | ||||||
| 		return FALSE; | 		return FALSE; | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| /*
 | /*
 | ||||||
|  * Rufus: The Reliable USB Formatting Utility |  * Rufus: The Reliable USB Formatting Utility | ||||||
|  * DOS keyboard locale setup |  * DOS keyboard locale setup | ||||||
|  * Copyright (c) 2011-2012 Pete Batard <pete@akeo.ie> |  * Copyright (c) 2011-2013 Pete Batard <pete@akeo.ie> | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
|  * it under the terms of the GNU General Public License as published by |  * it under the terms of the GNU General Public License as published by | ||||||
|  | @ -410,7 +410,10 @@ static const char* get_kb(void) | ||||||
| 	// need an KLID which GetKeyboardLayoutNameA() does return ...but only as a
 | 	// need an KLID which GetKeyboardLayoutNameA() does return ...but only as a
 | ||||||
| 	// string of an hex value...
 | 	// string of an hex value...
 | ||||||
| 	GetKeyboardLayoutNameA(kbid_str); | 	GetKeyboardLayoutNameA(kbid_str); | ||||||
| 	sscanf(kbid_str, "%x", &kbid); | 	if (sscanf(kbid_str, "%x", &kbid) == 0) { | ||||||
|  | 		uprintf("Could not scan keyboard layout name - falling back to US as default\n"); | ||||||
|  | 		kbid = 0x00000409; | ||||||
|  | 	} | ||||||
| 	uprintf("Windows KBID 0x%08x\n", kbid); | 	uprintf("Windows KBID 0x%08x\n", kbid); | ||||||
| 
 | 
 | ||||||
| 	for (pass=0; pass<3; pass++) { | 	for (pass=0; pass<3; pass++) { | ||||||
|  |  | ||||||
|  | @ -180,7 +180,7 @@ BOOL GetDriveLabel(DWORD DriveIndex, char* letter, char** label) | ||||||
| 		strncpy(VolumeLabel, AutorunLabel, sizeof(VolumeLabel)); | 		strncpy(VolumeLabel, AutorunLabel, sizeof(VolumeLabel)); | ||||||
| 		safe_free(AutorunLabel); | 		safe_free(AutorunLabel); | ||||||
| 		*label = VolumeLabel; | 		*label = VolumeLabel; | ||||||
| 	} else if (GetVolumeInformationW(wDrivePath, wVolumeLabel, sizeof(wVolumeLabel), | 	} else if (GetVolumeInformationW(wDrivePath, wVolumeLabel, ARRAYSIZE(wVolumeLabel), | ||||||
| 		NULL, NULL, NULL, NULL, 0) && *wVolumeLabel) { | 		NULL, NULL, NULL, NULL, 0) && *wVolumeLabel) { | ||||||
| 		wchar_to_utf8_no_alloc(wVolumeLabel, VolumeLabel, sizeof(VolumeLabel)); | 		wchar_to_utf8_no_alloc(wVolumeLabel, VolumeLabel, sizeof(VolumeLabel)); | ||||||
| 		*label = VolumeLabel; | 		*label = VolumeLabel; | ||||||
|  |  | ||||||
|  | @ -1,9 +1,9 @@ | ||||||
| /*
 | /*
 | ||||||
|  * Rufus: The Reliable USB Formatting Utility |  * Rufus: The Reliable USB Formatting Utility | ||||||
|  * ISO file extraction |  * ISO file extraction | ||||||
|  * Copyright (c) 2011-2012 Pete Batard <pete@akeo.ie> |  * Copyright (c) 2011-2013 Pete Batard <pete@akeo.ie> | ||||||
|  * Based on libcdio's iso & udf samples: |  * Based on libcdio's iso & udf samples: | ||||||
|  * Copyright (c) 2003-2011 Rocky Bernstein <rocky@gnu.org> |  * Copyright (c) 2003-2012 Rocky Bernstein <rocky@gnu.org> | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
|  * it under the terms of the GNU General Public License as published by |  * it under the terms of the GNU General Public License as published by | ||||||
|  | @ -185,7 +185,7 @@ static int udf_extract_files(udf_t *p_udf, udf_dirent_t *p_udf_dirent, const cha | ||||||
| 			uprintf("Error allocating file name\n"); | 			uprintf("Error allocating file name\n"); | ||||||
| 			goto out; | 			goto out; | ||||||
| 		} | 		} | ||||||
| 		i_length = safe_sprintf(psz_fullpath, i_length, "%s%s/%s", psz_extract_dir, psz_path, psz_basename); | 		i_length = _snprintf(psz_fullpath, i_length, "%s%s/%s", psz_extract_dir, psz_path, psz_basename); | ||||||
| 		if (i_length < 0) { | 		if (i_length < 0) { | ||||||
| 			goto out; | 			goto out; | ||||||
| 		} | 		} | ||||||
|  | @ -292,7 +292,7 @@ static int iso_extract_files(iso9660_t* p_iso, const char *psz_path) | ||||||
| 	if ((p_iso == NULL) || (psz_path == NULL)) | 	if ((p_iso == NULL) || (psz_path == NULL)) | ||||||
| 		return 1; | 		return 1; | ||||||
| 
 | 
 | ||||||
| 	i_length = safe_sprintf(psz_fullpath, sizeof(psz_fullpath), "%s%s/", psz_extract_dir, psz_path); | 	i_length = _snprintf(psz_fullpath, sizeof(psz_fullpath), "%s%s/", psz_extract_dir, psz_path); | ||||||
| 	if (i_length < 0) | 	if (i_length < 0) | ||||||
| 		return 1; | 		return 1; | ||||||
| 	psz_basename = &psz_fullpath[i_length]; | 	psz_basename = &psz_fullpath[i_length]; | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
|  * MSAPI_UTF8: Common API calls using UTF-8 strings |  * MSAPI_UTF8: Common API calls using UTF-8 strings | ||||||
|  * Compensating for what Microsoft should have done a long long time ago. |  * Compensating for what Microsoft should have done a long long time ago. | ||||||
|  * |  * | ||||||
|  * Copyright (c) 2010-2012 Pete Batard <pete@akeo.ie> |  * Copyright (c) 2010-2013 Pete Batard <pete@akeo.ie> | ||||||
|  * |  * | ||||||
|  * This library is free software; you can redistribute it and/or |  * This library is free software; you can redistribute it and/or | ||||||
|  * modify it under the terms of the GNU Lesser General Public |  * modify it under the terms of the GNU Lesser General Public | ||||||
|  | @ -27,6 +27,10 @@ | ||||||
| #include <direct.h> | #include <direct.h> | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
|  | #if defined(_MSC_VER) | ||||||
|  | // disable VS2012 Code Analysis warnings that are intentional
 | ||||||
|  | #pragma warning(disable: 6387)	// Don't care about bad params
 | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
| extern "C" { | extern "C" { | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| /*
 | /*
 | ||||||
|  * Rufus: The Reliable USB Formatting Utility |  * Rufus: The Reliable USB Formatting Utility | ||||||
|  * Networking functionality (web file download, check for update, etc.) |  * Networking functionality (web file download, check for update, etc.) | ||||||
|  * Copyright (c) 2012 Pete Batard <pete@akeo.ie> |  * Copyright (c) 2012-2013 Pete Batard <pete@akeo.ie> | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
|  * it under the terms of the GNU General Public License as published by |  * it under the terms of the GNU General Public License as published by | ||||||
|  | @ -270,6 +270,7 @@ BOOL DownloadFile(const char* url, const char* file, HWND hProgressDialog) | ||||||
| 		uprintf("Unable to decode URL: %s\n", WindowsErrorString()); | 		uprintf("Unable to decode URL: %s\n", WindowsErrorString()); | ||||||
| 		goto out; | 		goto out; | ||||||
| 	} | 	} | ||||||
|  | 	hostname[sizeof(hostname)-1] = 0; | ||||||
| 
 | 
 | ||||||
| 	// Open an Internet session
 | 	// Open an Internet session
 | ||||||
| 	for (i=5; (i>0) && (!InternetGetConnectedState(&dwFlags, 0)); i--) { | 	for (i=5; (i>0) && (!InternetGetConnectedState(&dwFlags, 0)); i--) { | ||||||
|  | @ -476,8 +477,9 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param) | ||||||
| 
 | 
 | ||||||
| 	if ((!InternetCrackUrlA(server_url, (DWORD)safe_strlen(server_url), 0, &UrlParts)) || (!InternetGetConnectedState(&dwFlags, 0))) | 	if ((!InternetCrackUrlA(server_url, (DWORD)safe_strlen(server_url), 0, &UrlParts)) || (!InternetGetConnectedState(&dwFlags, 0))) | ||||||
| 		goto out; | 		goto out; | ||||||
|  | 	hostname[sizeof(hostname)-1] = 0; | ||||||
| 
 | 
 | ||||||
| 	_snprintf(agent, ARRAYSIZE(agent), APPLICATION_NAME "/%d.%d.%d.%d", rufus_version[0], rufus_version[1], rufus_version[2], rufus_version[3]); | 	safe_sprintf(agent, ARRAYSIZE(agent), APPLICATION_NAME "/%d.%d.%d.%d", rufus_version[0], rufus_version[1], rufus_version[2], rufus_version[3]); | ||||||
| 	hSession = InternetOpenA(agent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); | 	hSession = InternetOpenA(agent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); | ||||||
| 	if (hSession == NULL) | 	if (hSession == NULL) | ||||||
| 		goto out; | 		goto out; | ||||||
|  |  | ||||||
							
								
								
									
										26
									
								
								src/rufus.c
									
										
									
									
									
								
							
							
						
						
									
										26
									
								
								src/rufus.c
									
										
									
									
									
								
							|  | @ -1,6 +1,6 @@ | ||||||
| /*
 | /*
 | ||||||
|  * Rufus: The Reliable USB Formatting Utility |  * Rufus: The Reliable USB Formatting Utility | ||||||
|  * Copyright © 2011-2012 Pete Batard <pete@akeo.ie> |  * Copyright © 2011-2013 Pete Batard <pete@akeo.ie> | ||||||
|  *  |  *  | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
|  * it under the terms of the GNU General Public License as published by |  * it under the terms of the GNU General Public License as published by | ||||||
|  | @ -395,7 +395,7 @@ static BOOL GetDriveInfo(void) | ||||||
| 						DriveLayout->PartitionEntry[i].Mbr.BootIndicator?"Yes":"No", | 						DriveLayout->PartitionEntry[i].Mbr.BootIndicator?"Yes":"No", | ||||||
| 						DriveLayout->PartitionEntry[i].Mbr.RecognizedPartition?"Yes":"No", | 						DriveLayout->PartitionEntry[i].Mbr.RecognizedPartition?"Yes":"No", | ||||||
| 						DriveLayout->PartitionEntry[i].Mbr.HiddenSectors); | 						DriveLayout->PartitionEntry[i].Mbr.HiddenSectors); | ||||||
| 					tmp_pos = safe_sprintf(&tmp[tmp_pos], sizeof(tmp)-tmp_pos, "Partition %d: %s (%s)\n", | 					tmp_pos = _snprintf(&tmp[tmp_pos], sizeof(tmp)-tmp_pos, "Partition %d: %s (%s)\n", | ||||||
| 						i+1, GetPartitionType(part_type), size_to_hr(DriveLayout->PartitionEntry[i].PartitionLength)); | 						i+1, GetPartitionType(part_type), size_to_hr(DriveLayout->PartitionEntry[i].PartitionLength)); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  | @ -525,7 +525,7 @@ static BOOL PopulateProperties(int ComboIndex) | ||||||
| { | { | ||||||
| 	double HumanReadableSize; | 	double HumanReadableSize; | ||||||
| 	char capacity[64]; | 	char capacity[64]; | ||||||
| 	static char *suffix[] = { "KB", "MB", "GB", "TB", "PB"}; | 	static char *suffix[] = { "B", "KB", "MB", "GB", "TB", "PB"}; | ||||||
| 	char no_label[] = STR_NO_LABEL; | 	char no_label[] = STR_NO_LABEL; | ||||||
| 	int i, fs; | 	int i, fs; | ||||||
| 
 | 
 | ||||||
|  | @ -547,7 +547,7 @@ static BOOL PopulateProperties(int ComboIndex) | ||||||
| 	EnableBootOptions((fs == FS_FAT16) || (fs == FS_FAT32) || (fs == FS_NTFS)); | 	EnableBootOptions((fs == FS_FAT16) || (fs == FS_FAT32) || (fs == FS_NTFS)); | ||||||
| 
 | 
 | ||||||
| 	HumanReadableSize = (double)SelectedDrive.DiskSize; | 	HumanReadableSize = (double)SelectedDrive.DiskSize; | ||||||
| 	for (i=0; i<ARRAYSIZE(suffix); i++) { | 	for (i=1; i<ARRAYSIZE(suffix); i++) { | ||||||
| 		HumanReadableSize /= 1024.0; | 		HumanReadableSize /= 1024.0; | ||||||
| 		if (HumanReadableSize < 512.0) { | 		if (HumanReadableSize < 512.0) { | ||||||
| 			safe_sprintf(capacity, sizeof(capacity), "%0.2f %s", HumanReadableSize, suffix[i]); | 			safe_sprintf(capacity, sizeof(capacity), "%0.2f %s", HumanReadableSize, suffix[i]); | ||||||
|  | @ -751,6 +751,10 @@ static BOOL GetUSBDevices(DWORD devnum) | ||||||
| 					continue; | 					continue; | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  | 			if (devint_detail_data == NULL) { | ||||||
|  | 				uprintf("SetupDiGetDeviceInterfaceDetail (dummy) - no data was allocated\n"); | ||||||
|  | 				continue; | ||||||
|  | 			} | ||||||
| 			if(!SetupDiGetDeviceInterfaceDetailA(dev_info, &devint_data, devint_detail_data, size, &size, NULL)) { | 			if(!SetupDiGetDeviceInterfaceDetailA(dev_info, &devint_data, devint_detail_data, size, &size, NULL)) { | ||||||
| 				uprintf("SetupDiGetDeviceInterfaceDetail (actual) failed: %s\n", WindowsErrorString()); | 				uprintf("SetupDiGetDeviceInterfaceDetail (actual) failed: %s\n", WindowsErrorString()); | ||||||
| 				continue; | 				continue; | ||||||
|  | @ -1207,7 +1211,7 @@ BOOL CALLBACK ISOProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) | ||||||
| 		hISOProgressBar = GetDlgItem(hDlg, IDC_PROGRESS); | 		hISOProgressBar = GetDlgItem(hDlg, IDC_PROGRESS); | ||||||
| 		hISOFileName = GetDlgItem(hDlg, IDC_ISO_FILENAME); | 		hISOFileName = GetDlgItem(hDlg, IDC_ISO_FILENAME); | ||||||
| 		// Use maximum granularity for the progress bar
 | 		// Use maximum granularity for the progress bar
 | ||||||
| 		SendMessage(hISOProgressBar, PBM_SETRANGE, 0, MAX_PROGRESS<<16); | 		SendMessage(hISOProgressBar, PBM_SETRANGE, 0, (MAX_PROGRESS<<16) & 0xFFFF0000); | ||||||
| 		return TRUE; | 		return TRUE; | ||||||
| 	case UM_ISO_INIT: | 	case UM_ISO_INIT: | ||||||
| 		iso_op_in_progress = TRUE; | 		iso_op_in_progress = TRUE; | ||||||
|  | @ -1450,7 +1454,7 @@ void InitDialog(HWND hDlg) | ||||||
| 	SetTaskbarProgressState(TASKBAR_NORMAL); | 	SetTaskbarProgressState(TASKBAR_NORMAL); | ||||||
| 
 | 
 | ||||||
| 	// Use maximum granularity for the progress bar
 | 	// Use maximum granularity for the progress bar
 | ||||||
| 	SendMessage(hProgress, PBM_SETRANGE, 0, MAX_PROGRESS<<16); | 	SendMessage(hProgress, PBM_SETRANGE, 0, (MAX_PROGRESS<<16) & 0xFFFF0000); | ||||||
| 	// Fill up the passes
 | 	// Fill up the passes
 | ||||||
| 	IGNORE_RETVAL(ComboBox_AddStringU(hNBPasses, "1 Pass")); | 	IGNORE_RETVAL(ComboBox_AddStringU(hNBPasses, "1 Pass")); | ||||||
| 	IGNORE_RETVAL(ComboBox_AddStringU(hNBPasses, "2 Passes")); | 	IGNORE_RETVAL(ComboBox_AddStringU(hNBPasses, "2 Passes")); | ||||||
|  | @ -1902,9 +1906,9 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
| 		GetUSBDevices(DeviceNum); | 		GetUSBDevices(DeviceNum); | ||||||
| 		if (!IS_ERROR(FormatStatus)) { | 		if (!IS_ERROR(FormatStatus)) { | ||||||
| 			// This is the only way to achieve instantenous progress transition to 100%
 | 			// This is the only way to achieve instantenous progress transition to 100%
 | ||||||
| 			SendMessage(hProgress, PBM_SETRANGE, 0, (MAX_PROGRESS+1)<<16); | 			SendMessage(hProgress, PBM_SETRANGE, 0, ((MAX_PROGRESS+1)<<16) & 0xFFFF0000); | ||||||
| 			SendMessage(hProgress, PBM_SETPOS, (MAX_PROGRESS+1), 0); | 			SendMessage(hProgress, PBM_SETPOS, (MAX_PROGRESS+1), 0); | ||||||
| 			SendMessage(hProgress, PBM_SETRANGE, 0, MAX_PROGRESS<<16); | 			SendMessage(hProgress, PBM_SETRANGE, 0, (MAX_PROGRESS<<16) & 0xFFFF0000); | ||||||
| 			SetTaskbarProgressState(TASKBAR_NOPROGRESS); | 			SetTaskbarProgressState(TASKBAR_NOPROGRESS); | ||||||
| 			PrintStatus(0, FALSE, "DONE"); | 			PrintStatus(0, FALSE, "DONE"); | ||||||
| 		} else if (SCODE_CODE(FormatStatus) == ERROR_CANCELLED) { | 		} else if (SCODE_CODE(FormatStatus) == ERROR_CANCELLED) { | ||||||
|  | @ -1931,7 +1935,11 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | ||||||
|  */ |  */ | ||||||
| // If we ever need to process more than one commandline arguments, uncomment the following parts
 | // If we ever need to process more than one commandline arguments, uncomment the following parts
 | ||||||
| // typedef int (CDECL *__wgetmainargs_t)(int*, wchar_t***, wchar_t***, int, int*);
 | // typedef int (CDECL *__wgetmainargs_t)(int*, wchar_t***, wchar_t***, int, int*);
 | ||||||
|  | #if defined(_MSC_VER) && (_MSC_VER >= 1600) | ||||||
|  | int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd) | ||||||
|  | #else | ||||||
| int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) | int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) | ||||||
|  | #endif | ||||||
| { | { | ||||||
| //	int i, argc = 0, si = 0;
 | //	int i, argc = 0, si = 0;
 | ||||||
| //	char** argv = NULL;
 | //	char** argv = NULL;
 | ||||||
|  | @ -1976,7 +1984,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine | ||||||
| 	hMainInstance = hInstance; | 	hMainInstance = hInstance; | ||||||
| 
 | 
 | ||||||
| 	// Initialize COM for folder selection
 | 	// Initialize COM for folder selection
 | ||||||
| 	CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); | 	IGNORE_RETVAL(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)); | ||||||
| 
 | 
 | ||||||
| 	// Some dialogs have Rich Edit controls and won't display without this
 | 	// Some dialogs have Rich Edit controls and won't display without this
 | ||||||
| 	if (LoadLibraryA("Riched20.dll") == NULL) { | 	if (LoadLibraryA("Riched20.dll") == NULL) { | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| /*
 | /*
 | ||||||
|  * Rufus: The Reliable USB Formatting Utility |  * Rufus: The Reliable USB Formatting Utility | ||||||
|  * Copyright © 2011-2012 Pete Batard <pete@akeo.ie> |  * Copyright © 2011-2013 Pete Batard <pete@akeo.ie> | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
|  * it under the terms of the GNU General Public License as published by |  * it under the terms of the GNU General Public License as published by | ||||||
|  | @ -19,6 +19,11 @@ | ||||||
| #include <winioctl.h>               // for DISK_GEOMETRY | #include <winioctl.h>               // for DISK_GEOMETRY | ||||||
| #include <stdint.h> | #include <stdint.h> | ||||||
| 
 | 
 | ||||||
|  | #if defined(_MSC_VER) | ||||||
|  | // Disable some VS2012 Code Analysis warnings
 | ||||||
|  | #pragma warning(disable: 28159)		// VS2012 wants us to use GetTickCount64(), but it's not available on XP
 | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| /* Program options */ | /* Program options */ | ||||||
|  | @ -63,7 +68,7 @@ | ||||||
| #define safe_strnicmp(str1, str2, count) _strnicmp(((str1==NULL)?"<NULL>":str1), ((str2==NULL)?"<NULL>":str2), count) | #define safe_strnicmp(str1, str2, count) _strnicmp(((str1==NULL)?"<NULL>":str1), ((str2==NULL)?"<NULL>":str2), count) | ||||||
| #define safe_closehandle(h) do {if (h != INVALID_HANDLE_VALUE) {CloseHandle(h); h = INVALID_HANDLE_VALUE;}} while(0) | #define safe_closehandle(h) do {if (h != INVALID_HANDLE_VALUE) {CloseHandle(h); h = INVALID_HANDLE_VALUE;}} while(0) | ||||||
| #define safe_unlockclose(h) do {if (h != INVALID_HANDLE_VALUE) {UnlockDrive(h); CloseHandle(h); h = INVALID_HANDLE_VALUE;}} while(0) | #define safe_unlockclose(h) do {if (h != INVALID_HANDLE_VALUE) {UnlockDrive(h); CloseHandle(h); h = INVALID_HANDLE_VALUE;}} while(0) | ||||||
| #define safe_sprintf _snprintf | #define safe_sprintf(dst, count, ...) do {_snprintf(dst, count, __VA_ARGS__); (dst)[(count)-1] = 0; } while(0) | ||||||
| #define safe_strlen(str) ((((char*)str)==NULL)?0:strlen(str)) | #define safe_strlen(str) ((((char*)str)==NULL)?0:strlen(str)) | ||||||
| #define safe_strdup _strdup | #define safe_strdup _strdup | ||||||
| #if defined(_MSC_VER) | #if defined(_MSC_VER) | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							|  | @ -30,7 +30,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL | ||||||
| IDD_DIALOG DIALOGEX 12, 12, 206, 316 | IDD_DIALOG DIALOGEX 12, 12, 206, 316 | ||||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | ||||||
| EXSTYLE WS_EX_APPWINDOW | EXSTYLE WS_EX_APPWINDOW | ||||||
| CAPTION "Rufus v1.3.0.215" | CAPTION "Rufus v1.3.0.216" | ||||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||||
| BEGIN | BEGIN | ||||||
|     DEFPUSHBUTTON   "Start",IDC_START,94,278,50,14 |     DEFPUSHBUTTON   "Start",IDC_START,94,278,50,14 | ||||||
|  | @ -274,8 +274,8 @@ END | ||||||
| // | // | ||||||
| 
 | 
 | ||||||
| VS_VERSION_INFO VERSIONINFO | VS_VERSION_INFO VERSIONINFO | ||||||
|  FILEVERSION 1,3,0,215 |  FILEVERSION 1,3,0,216 | ||||||
|  PRODUCTVERSION 1,3,0,215 |  PRODUCTVERSION 1,3,0,216 | ||||||
|  FILEFLAGSMASK 0x3fL |  FILEFLAGSMASK 0x3fL | ||||||
| #ifdef _DEBUG | #ifdef _DEBUG | ||||||
|  FILEFLAGS 0x1L |  FILEFLAGS 0x1L | ||||||
|  | @ -292,13 +292,13 @@ BEGIN | ||||||
|         BEGIN |         BEGIN | ||||||
|             VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" |             VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" | ||||||
|             VALUE "FileDescription", "Rufus" |             VALUE "FileDescription", "Rufus" | ||||||
|             VALUE "FileVersion", "1.3.0.215" |             VALUE "FileVersion", "1.3.0.216" | ||||||
|             VALUE "InternalName", "Rufus" |             VALUE "InternalName", "Rufus" | ||||||
|             VALUE "LegalCopyright", "(c) 2011-2012 Pete Batard (GPL v3)" |             VALUE "LegalCopyright", "(c) 2011-2012 Pete Batard (GPL v3)" | ||||||
|             VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" |             VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" | ||||||
|             VALUE "OriginalFilename", "rufus.exe" |             VALUE "OriginalFilename", "rufus.exe" | ||||||
|             VALUE "ProductName", "Rufus" |             VALUE "ProductName", "Rufus" | ||||||
|             VALUE "ProductVersion", "1.3.0.215" |             VALUE "ProductVersion", "1.3.0.216" | ||||||
|         END |         END | ||||||
|     END |     END | ||||||
|     BLOCK "VarFileInfo" |     BLOCK "VarFileInfo" | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| /*
 | /*
 | ||||||
|  * Rufus: The Reliable USB Formatting Utility |  * Rufus: The Reliable USB Formatting Utility | ||||||
|  * Standard I/O Routines (logging, status, etc.) |  * Standard I/O Routines (logging, status, etc.) | ||||||
|  * Copyright (c) 2011-2012 Pete Batard <pete@akeo.ie> |  * Copyright (c) 2011-2013 Pete Batard <pete@akeo.ie> | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
|  * it under the terms of the GNU General Public License as published by |  * it under the terms of the GNU General Public License as published by | ||||||
|  | @ -107,7 +107,7 @@ void DumpBufferHex(void *buf, size_t size) | ||||||
|  */ |  */ | ||||||
| const char *WindowsErrorString(void) | const char *WindowsErrorString(void) | ||||||
| { | { | ||||||
| static char err_string[256]; | static char err_string[256] = {0}; | ||||||
| 
 | 
 | ||||||
| 	DWORD size; | 	DWORD size; | ||||||
| 	DWORD error_code, format_error; | 	DWORD error_code, format_error; | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								src/stdlg.c
									
										
									
									
									
								
							
							
						
						
									
										14
									
								
								src/stdlg.c
									
										
									
									
									
								
							|  | @ -1,9 +1,9 @@ | ||||||
| /*
 | /*
 | ||||||
|  * Rufus: The Reliable USB Formatting Utility |  * Rufus: The Reliable USB Formatting Utility | ||||||
|  * Standard Dialog Routines (Browse for folder, About, etc) |  * Standard Dialog Routines (Browse for folder, About, etc) | ||||||
|  * Copyright © 2011-2012 Pete Batard <pete@akeo.ie> |  * Copyright © 2011-2013 Pete Batard <pete@akeo.ie> | ||||||
|  * |  * | ||||||
|  * Based on zadig_stdlg.c, part of libwdi: http://libwdi.sf.net
 |  * Based on zadig_stdlg.c, part of libwdi: http://libwdi.akeo.ie
 | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
|  * it under the terms of the GNU General Public License as published by |  * it under the terms of the GNU General Public License as published by | ||||||
|  | @ -114,12 +114,15 @@ void StrArrayCreate(StrArray* arr, size_t initial_size) | ||||||
| 
 | 
 | ||||||
| void StrArrayAdd(StrArray* arr, const char* str) | void StrArrayAdd(StrArray* arr, const char* str) | ||||||
| { | { | ||||||
|  | 	char** old_table; | ||||||
| 	if ((arr == NULL) || (arr->Table == NULL)) | 	if ((arr == NULL) || (arr->Table == NULL)) | ||||||
| 		return; | 		return; | ||||||
| 	if (arr->Index == arr->Max) { | 	if (arr->Index == arr->Max) { | ||||||
| 		arr->Max *= 2; | 		arr->Max *= 2; | ||||||
|  | 		old_table = arr->Table; | ||||||
| 		arr->Table = (char**)realloc(arr->Table, arr->Max*sizeof(char*)); | 		arr->Table = (char**)realloc(arr->Table, arr->Max*sizeof(char*)); | ||||||
| 		if (arr->Table == NULL) { | 		if (arr->Table == NULL) { | ||||||
|  | 			free(old_table); | ||||||
| 			uprintf("Could not reallocate string array\n"); | 			uprintf("Could not reallocate string array\n"); | ||||||
| 			return; | 			return; | ||||||
| 		} | 		} | ||||||
|  | @ -700,6 +703,7 @@ INT_PTR CALLBACK AboutCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lP | ||||||
| 				tr.chrg.cpMin = enl->chrg.cpMin; | 				tr.chrg.cpMin = enl->chrg.cpMin; | ||||||
| 				tr.chrg.cpMax = enl->chrg.cpMax; | 				tr.chrg.cpMax = enl->chrg.cpMax; | ||||||
| 				SendMessageW(enl->nmhdr.hwndFrom, EM_GETTEXTRANGE, 0, (LPARAM)&tr); | 				SendMessageW(enl->nmhdr.hwndFrom, EM_GETTEXTRANGE, 0, (LPARAM)&tr); | ||||||
|  | 				wUrl[ARRAYSIZE(wUrl)-1] = 0; | ||||||
| 				ShellExecuteW(hDlg, L"open", wUrl, NULL, NULL, SW_SHOWNORMAL); | 				ShellExecuteW(hDlg, L"open", wUrl, NULL, NULL, SW_SHOWNORMAL); | ||||||
| 			} | 			} | ||||||
| 			break; | 			break; | ||||||
|  | @ -970,7 +974,8 @@ void DestroyAllTooltips(void) | ||||||
| /* Determine if a Windows is being displayed or not */ | /* Determine if a Windows is being displayed or not */ | ||||||
| BOOL IsShown(HWND hDlg) | BOOL IsShown(HWND hDlg) | ||||||
| { | { | ||||||
| 	WINDOWPLACEMENT placement; | 	WINDOWPLACEMENT placement = {0}; | ||||||
|  | 	placement.length = sizeof(WINDOWPLACEMENT); | ||||||
| 	if (!GetWindowPlacement(hDlg, &placement)) | 	if (!GetWindowPlacement(hDlg, &placement)) | ||||||
| 		return FALSE; | 		return FALSE; | ||||||
| 	switch (placement.showCmd) { | 	switch (placement.showCmd) { | ||||||
|  | @ -1282,7 +1287,7 @@ INT_PTR CALLBACK NewVersionCallback(HWND hDlg, UINT message, WPARAM wParam, LPAR | ||||||
| 			update.version[0], update.version[1], update.version[2], update.version[3]); | 			update.version[0], update.version[1], update.version[2], update.version[3]); | ||||||
| 		SetWindowTextA(GetDlgItem(hDlg, IDC_LATEST_VERSION), tmp); | 		SetWindowTextA(GetDlgItem(hDlg, IDC_LATEST_VERSION), tmp); | ||||||
| 		SetWindowTextA(GetDlgItem(hDlg, IDC_DOWNLOAD_URL), update.download_url); | 		SetWindowTextA(GetDlgItem(hDlg, IDC_DOWNLOAD_URL), update.download_url); | ||||||
| 		SendMessage(GetDlgItem(hDlg, IDC_PROGRESS), PBM_SETRANGE, 0, MAX_PROGRESS<<16); | 		SendMessage(GetDlgItem(hDlg, IDC_PROGRESS), PBM_SETRANGE, 0, (MAX_PROGRESS<<16) & 0xFFFF0000); | ||||||
| 		if (update.download_url == NULL) | 		if (update.download_url == NULL) | ||||||
| 			EnableWindow(GetDlgItem(hDlg, IDC_DOWNLOAD), FALSE); | 			EnableWindow(GetDlgItem(hDlg, IDC_DOWNLOAD), FALSE); | ||||||
| 		break; | 		break; | ||||||
|  | @ -1301,6 +1306,7 @@ INT_PTR CALLBACK NewVersionCallback(HWND hDlg, UINT message, WPARAM wParam, LPAR | ||||||
| 				tr.chrg.cpMin = enl->chrg.cpMin; | 				tr.chrg.cpMin = enl->chrg.cpMin; | ||||||
| 				tr.chrg.cpMax = enl->chrg.cpMax; | 				tr.chrg.cpMax = enl->chrg.cpMax; | ||||||
| 				SendMessageW(enl->nmhdr.hwndFrom, EM_GETTEXTRANGE, 0, (LPARAM)&tr); | 				SendMessageW(enl->nmhdr.hwndFrom, EM_GETTEXTRANGE, 0, (LPARAM)&tr); | ||||||
|  | 				wUrl[ARRAYSIZE(wUrl)-1] = 0; | ||||||
| 				ShellExecuteW(hDlg, L"open", wUrl, NULL, NULL, SW_SHOWNORMAL); | 				ShellExecuteW(hDlg, L"open", wUrl, NULL, NULL, SW_SHOWNORMAL); | ||||||
| 			} | 			} | ||||||
| 			break; | 			break; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue