From f965c5cd235b6731493b0d010b39010a829b7a12 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Fri, 23 Jan 2015 02:26:41 +0000 Subject: [PATCH] [misc] fix multiple warnings * Fix Visual Studio code analysis warnings * Also rename VS targets to x86_32 and x86_64 --- rufus.sln | 152 +++++++++++++++---------------- src/bled/data_extract_all.c | 4 +- src/bled/decompress_gunzip.c | 2 +- src/bled/decompress_uncompress.c | 4 +- src/bled/decompress_unlzma.c | 6 +- src/bled/libbb.h | 6 +- src/bled/open_transformer.c | 2 +- src/bled/xz_dec_bcj.c | 2 +- src/bled/xz_dec_lzma2.c | 16 ++-- src/dos.c | 9 +- src/drive.c | 4 +- src/iso.c | 7 +- src/msapi_utf8.h | 4 +- src/registry.h | 41 ++++++--- src/rufus.h | 1 + src/rufus.rc | 16 ++-- src/stdfn.c | 4 +- src/vhd.c | 6 +- 18 files changed, 158 insertions(+), 128 deletions(-) diff --git a/rufus.sln b/rufus.sln index d44f53dd..4e22dae8 100644 --- a/rufus.sln +++ b/rufus.sln @@ -22,84 +22,84 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bled", "src\bled\.msvc\bled EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 + Debug|x86_32 = Debug|x86_32 + Debug|x86_64 = Debug|x86_64 + Release|x86_32 = Release|x86_32 + Release|x86_64 = Release|x86_64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {731858A7-0303-4988-877B-9C0DD6471864}.Debug|Win32.ActiveCfg = Debug|Win32 - {731858A7-0303-4988-877B-9C0DD6471864}.Debug|Win32.Build.0 = Debug|Win32 - {731858A7-0303-4988-877B-9C0DD6471864}.Debug|x64.ActiveCfg = Debug|x64 - {731858A7-0303-4988-877B-9C0DD6471864}.Debug|x64.Build.0 = Debug|x64 - {731858A7-0303-4988-877B-9C0DD6471864}.Release|Win32.ActiveCfg = Release|Win32 - {731858A7-0303-4988-877B-9C0DD6471864}.Release|Win32.Build.0 = Release|Win32 - {731858A7-0303-4988-877B-9C0DD6471864}.Release|x64.ActiveCfg = Release|x64 - {731858A7-0303-4988-877B-9C0DD6471864}.Release|x64.Build.0 = Release|x64 - {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|Win32.ActiveCfg = Debug|Win32 - {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|Win32.Build.0 = Debug|Win32 - {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x64.ActiveCfg = Debug|x64 - {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x64.Build.0 = Debug|x64 - {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|Win32.ActiveCfg = Release|Win32 - {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|Win32.Build.0 = Release|Win32 - {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x64.ActiveCfg = Release|x64 - {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x64.Build.0 = Release|x64 - {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|Win32.ActiveCfg = Debug|Win32 - {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|Win32.Build.0 = Debug|Win32 - {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x64.ActiveCfg = Debug|x64 - {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x64.Build.0 = Debug|x64 - {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|Win32.ActiveCfg = Release|Win32 - {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|Win32.Build.0 = Release|Win32 - {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x64.ActiveCfg = Release|x64 - {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x64.Build.0 = Release|x64 - {266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|Win32.ActiveCfg = Debug|Win32 - {266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|Win32.Build.0 = Debug|Win32 - {266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x64.ActiveCfg = Debug|x64 - {266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x64.Build.0 = Debug|x64 - {266502AC-CD74-4581-B707-938A7D05AD7A}.Release|Win32.ActiveCfg = Release|Win32 - {266502AC-CD74-4581-B707-938A7D05AD7A}.Release|Win32.Build.0 = Release|Win32 - {266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x64.ActiveCfg = Release|x64 - {266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x64.Build.0 = Release|x64 - {D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|Win32.ActiveCfg = Debug|Win32 - {D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|Win32.Build.0 = Debug|Win32 - {D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x64.ActiveCfg = Debug|x64 - {D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x64.Build.0 = Debug|x64 - {D4E80F35-2604-40AC-B436-97B052ECB572}.Release|Win32.ActiveCfg = Release|Win32 - {D4E80F35-2604-40AC-B436-97B052ECB572}.Release|Win32.Build.0 = Release|Win32 - {D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x64.ActiveCfg = Release|x64 - {D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x64.Build.0 = Release|x64 - {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|Win32.ActiveCfg = Debug|Win32 - {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|Win32.Build.0 = Debug|Win32 - {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x64.ActiveCfg = Debug|x64 - {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x64.Build.0 = Debug|x64 - {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|Win32.ActiveCfg = Release|Win32 - {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|Win32.Build.0 = Release|Win32 - {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x64.ActiveCfg = Release|x64 - {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x64.Build.0 = Release|x64 - {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|Win32.ActiveCfg = Debug|Win32 - {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|Win32.Build.0 = Debug|Win32 - {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x64.ActiveCfg = Debug|x64 - {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x64.Build.0 = Debug|x64 - {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|Win32.ActiveCfg = Release|Win32 - {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|Win32.Build.0 = Release|Win32 - {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x64.ActiveCfg = Release|x64 - {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x64.Build.0 = Release|x64 - {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|Win32.ActiveCfg = Debug|Win32 - {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|Win32.Build.0 = Debug|Win32 - {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x64.ActiveCfg = Debug|x64 - {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x64.Build.0 = Debug|x64 - {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|Win32.ActiveCfg = Release|Win32 - {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|Win32.Build.0 = Release|Win32 - {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x64.ActiveCfg = Release|x64 - {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x64.Build.0 = Release|x64 - {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|Win32.ActiveCfg = Debug|Win32 - {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|Win32.Build.0 = Debug|Win32 - {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x64.ActiveCfg = Debug|x64 - {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x64.Build.0 = Debug|x64 - {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|Win32.ActiveCfg = Release|Win32 - {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|Win32.Build.0 = Release|Win32 - {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x64.ActiveCfg = Release|x64 - {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x64.Build.0 = Release|x64 + {731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_32.ActiveCfg = Debug|Win32 + {731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_32.Build.0 = Debug|Win32 + {731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_64.ActiveCfg = Debug|x64 + {731858A7-0303-4988-877B-9C0DD6471864}.Debug|x86_64.Build.0 = Debug|x64 + {731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_32.ActiveCfg = Release|Win32 + {731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_32.Build.0 = Release|Win32 + {731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_64.ActiveCfg = Release|x64 + {731858A7-0303-4988-877B-9C0DD6471864}.Release|x86_64.Build.0 = Release|x64 + {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_32.ActiveCfg = Debug|Win32 + {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_32.Build.0 = Debug|Win32 + {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_64.ActiveCfg = Debug|x64 + {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Debug|x86_64.Build.0 = Debug|x64 + {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_32.ActiveCfg = Release|Win32 + {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_32.Build.0 = Release|Win32 + {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_64.ActiveCfg = Release|x64 + {2B1D078D-8EB4-4398-9CA4-23457265A7F6}.Release|x86_64.Build.0 = Release|x64 + {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_32.ActiveCfg = Debug|Win32 + {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_32.Build.0 = Debug|Win32 + {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_64.ActiveCfg = Debug|x64 + {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Debug|x86_64.Build.0 = Debug|x64 + {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_32.ActiveCfg = Release|Win32 + {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_32.Build.0 = Release|Win32 + {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_64.ActiveCfg = Release|x64 + {8390DCE0-859D-4F57-AD9C-AAEAC4D77EEF}.Release|x86_64.Build.0 = Release|x64 + {266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_32.ActiveCfg = Debug|Win32 + {266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_32.Build.0 = Debug|Win32 + {266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_64.ActiveCfg = Debug|x64 + {266502AC-CD74-4581-B707-938A7D05AD7A}.Debug|x86_64.Build.0 = Debug|x64 + {266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_32.ActiveCfg = Release|Win32 + {266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_32.Build.0 = Release|Win32 + {266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_64.ActiveCfg = Release|x64 + {266502AC-CD74-4581-B707-938A7D05AD7A}.Release|x86_64.Build.0 = Release|x64 + {D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_32.ActiveCfg = Debug|Win32 + {D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_32.Build.0 = Debug|Win32 + {D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_64.ActiveCfg = Debug|x64 + {D4E80F35-2604-40AC-B436-97B052ECB572}.Debug|x86_64.Build.0 = Debug|x64 + {D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_32.ActiveCfg = Release|Win32 + {D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_32.Build.0 = Release|Win32 + {D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_64.ActiveCfg = Release|x64 + {D4E80F35-2604-40AC-B436-97B052ECB572}.Release|x86_64.Build.0 = Release|x64 + {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_32.ActiveCfg = Debug|Win32 + {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_32.Build.0 = Debug|Win32 + {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_64.ActiveCfg = Debug|x64 + {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Debug|x86_64.Build.0 = Debug|x64 + {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_32.ActiveCfg = Release|Win32 + {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_32.Build.0 = Release|Win32 + {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_64.ActiveCfg = Release|x64 + {0CEC40A6-A195-4BE5-A88B-0AB00EB142EC}.Release|x86_64.Build.0 = Release|x64 + {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_32.ActiveCfg = Debug|Win32 + {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_32.Build.0 = Debug|Win32 + {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_64.ActiveCfg = Debug|x64 + {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Debug|x86_64.Build.0 = Debug|x64 + {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_32.ActiveCfg = Release|Win32 + {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_32.Build.0 = Release|Win32 + {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_64.ActiveCfg = Release|x64 + {FA1B1093-BA86-410A-B7A0-7A54C605F812}.Release|x86_64.Build.0 = Release|x64 + {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_32.ActiveCfg = Debug|Win32 + {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_32.Build.0 = Debug|Win32 + {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_64.ActiveCfg = Debug|x64 + {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Debug|x86_64.Build.0 = Debug|x64 + {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_32.ActiveCfg = Release|Win32 + {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_32.Build.0 = Release|Win32 + {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_64.ActiveCfg = Release|x64 + {AE83E1B4-CE06-47EE-B7A3-C3A1D7C2D71E}.Release|x86_64.Build.0 = Release|x64 + {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_32.ActiveCfg = Debug|Win32 + {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_32.Build.0 = Debug|Win32 + {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_64.ActiveCfg = Debug|x64 + {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Debug|x86_64.Build.0 = Debug|x64 + {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_32.ActiveCfg = Release|Win32 + {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_32.Build.0 = Release|Win32 + {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_64.ActiveCfg = Release|x64 + {FB6D52D4-A2F8-C358-DB85-BBCAECFDDD7D}.Release|x86_64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/bled/data_extract_all.c b/src/bled/data_extract_all.c index 45776dcb..f7598aac 100644 --- a/src/bled/data_extract_all.c +++ b/src/bled/data_extract_all.c @@ -192,12 +192,12 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle) * it has lchmod which seems to do nothing! * so we use chmod... */ if (!(archive_handle->ah_flags & ARCHIVE_DONT_RESTORE_PERM)) { - chmod(file_header->name, file_header->mode); + (void)chmod(file_header->name, file_header->mode); } if (archive_handle->ah_flags & ARCHIVE_RESTORE_DATE) { struct timeval t[2]; - t[1].tv_sec = t[0].tv_sec = file_header->mtime; + t[1].tv_sec = t[0].tv_sec = (long)file_header->mtime; t[1].tv_usec = t[0].tv_usec = 0; utimes(file_header->name, t); } diff --git a/src/bled/decompress_gunzip.c b/src/bled/decompress_gunzip.c index d1b4f7f0..7f85e1f6 100644 --- a/src/bled/decompress_gunzip.c +++ b/src/bled/decompress_gunzip.c @@ -257,7 +257,7 @@ static unsigned fill_bitbuffer(STATE_PARAM unsigned bitbuffer, unsigned *current if (bytebuffer_offset >= bytebuffer_size) { unsigned sz = bytebuffer_max - 4; if (to_read >= 0 && to_read < sz) /* unzip only */ - sz = to_read; + sz = (unsigned)to_read; /* Leave the first 4 bytes empty so we can always unwind the bitbuffer * to the front of the bytebuffer */ bytebuffer_size = safe_read(gunzip_src_fd, &bytebuffer[4], sz); diff --git a/src/bled/decompress_uncompress.c b/src/bled/decompress_uncompress.c index 5330f5d1..e66e5bc3 100644 --- a/src/bled/decompress_uncompress.c +++ b/src/bled/decompress_uncompress.c @@ -261,7 +261,7 @@ unpack_Z_stream(transformer_state_t *xstate) { int i; - i = de_stack - stackp; + i = (int)(de_stack - stackp); if (outpos + i >= OBUFSIZ) { do { if (i > OBUFSIZ - outpos) { @@ -279,7 +279,7 @@ unpack_Z_stream(transformer_state_t *xstate) outpos = 0; } stackp += i; - i = de_stack - stackp; + i = (int)(de_stack - stackp); } while (i > 0); } else { memcpy(outbuf + outpos, stackp, i); diff --git a/src/bled/decompress_unlzma.c b/src/bled/decompress_unlzma.c index d1c5fa5d..e99b136f 100644 --- a/src/bled/decompress_unlzma.c +++ b/src/bled/decompress_unlzma.c @@ -247,7 +247,7 @@ unpack_lzma_stream(transformer_state_t *xstate) if (header.dict_size == 0) header.dict_size++; - buffer = xmalloc(MIN(header.dst_size, header.dict_size)); + buffer = xmalloc((size_t)MIN(header.dst_size, header.dict_size)); { int num_probs; @@ -279,7 +279,7 @@ unpack_lzma_stream(transformer_state_t *xstate) if (state >= LZMA_NUM_LIT_STATES) { int match_byte; - uint32_t pos = buffer_pos - rep0; + uint32_t pos = (uint32_t)(buffer_pos - rep0); while (pos >= header.dict_size) pos += header.dict_size; @@ -432,7 +432,7 @@ unpack_lzma_stream(transformer_state_t *xstate) len += LZMA_MATCH_MIN_LEN; IF_NOT_FEATURE_LZMA_FAST(string:) do { - uint32_t pos = buffer_pos - rep0; + uint32_t pos = (uint32_t)(buffer_pos - rep0); while (pos >= header.dict_size) pos += header.dict_size; previous_byte = buffer[pos]; diff --git a/src/bled/libbb.h b/src/bled/libbb.h index 9019e9ed..12cdf906 100644 --- a/src/bled/libbb.h +++ b/src/bled/libbb.h @@ -171,14 +171,14 @@ static inline pid_t wait(int* status) { *status = 4; return -1; } /* This override enables the display of a progress based on the number of bytes read */ extern uint64_t bb_total_rb; -static inline ssize_t full_read(int fd, void *buf, size_t count) { - ssize_t rb; +static inline int full_read(int fd, void *buf, size_t count) { + int rb; if ((bled_cancel_request != NULL) && (*bled_cancel_request != 0)) { errno = EINTR; return -1; } - rb = _read(fd, buf, count); + rb = _read(fd, buf, (int)count); if (rb > 0) { bb_total_rb += rb; if (bled_progress != NULL) diff --git a/src/bled/open_transformer.c b/src/bled/open_transformer.c index deea54b5..db794a39 100644 --- a/src/bled/open_transformer.c +++ b/src/bled/open_transformer.c @@ -48,7 +48,7 @@ ssize_t FAST_FUNC transformer_write(transformer_state_t *xstate, const void *buf xstate->mem_output_buf[size] = '\0'; nwrote = bufsize; } else { - nwrote = full_write(xstate->dst_fd, buf, bufsize); + nwrote = full_write(xstate->dst_fd, buf, (unsigned)bufsize); if (nwrote != (ssize_t)bufsize) { bb_perror_msg("write"); nwrote = -1; diff --git a/src/bled/xz_dec_bcj.c b/src/bled/xz_dec_bcj.c index e0f913a9..219a8bc8 100644 --- a/src/bled/xz_dec_bcj.c +++ b/src/bled/xz_dec_bcj.c @@ -394,7 +394,7 @@ static void XZ_FUNC bcj_apply(struct xz_dec_bcj *s, } *pos += filtered; - s->pos += filtered; + s->pos += (uint32_t)filtered; } /* diff --git a/src/bled/xz_dec_lzma2.c b/src/bled/xz_dec_lzma2.c index 3c2dc88b..eac9970d 100644 --- a/src/bled/xz_dec_lzma2.c +++ b/src/bled/xz_dec_lzma2.c @@ -353,7 +353,7 @@ static bool XZ_FUNC dict_repeat( if (dist >= dict->full || dist >= dict->size) return false; - left = min_t(size_t, dict->limit - dict->pos, *len); + left = (uint32_t)min_t(size_t, dict->limit - dict->pos, *len); *len -= left; back = dict->pos - dist - 1; @@ -387,7 +387,7 @@ static void XZ_FUNC dict_uncompressed( if (copy_size > *left) copy_size = *left; - *left -= copy_size; + *left -= (uint32_t)copy_size; memcpy(dict->buf + dict->pos, b->in + b->in_pos, copy_size); dict->pos += copy_size; @@ -429,7 +429,7 @@ static uint32_t XZ_FUNC dict_flush(struct dictionary *dict, struct xz_buf *b) dict->start = dict->pos; b->out_pos += copy_size; - return copy_size; + return (uint32_t)copy_size; } /***************** @@ -856,7 +856,7 @@ static bool XZ_FUNC lzma2_lzma(struct xz_dec_lzma2 *s, struct xz_buf *b) if (tmp > s->lzma2.compressed - s->temp.size) tmp = s->lzma2.compressed - s->temp.size; if (tmp > in_avail) - tmp = in_avail; + tmp = (uint32_t)in_avail; memcpy(s->temp.buf + s->temp.size, b->in + b->in_pos, tmp); @@ -879,10 +879,10 @@ static bool XZ_FUNC lzma2_lzma(struct xz_dec_lzma2 *s, struct xz_buf *b) if (!lzma_main(s) || s->rc.in_pos > s->temp.size + tmp) return false; - s->lzma2.compressed -= s->rc.in_pos; + s->lzma2.compressed -= (uint32_t)s->rc.in_pos; if (s->rc.in_pos < s->temp.size) { - s->temp.size -= s->rc.in_pos; + s->temp.size -= (uint32_t)s->rc.in_pos; memmove(s->temp.buf, s->temp.buf + s->rc.in_pos, s->temp.size); return true; @@ -909,7 +909,7 @@ static bool XZ_FUNC lzma2_lzma(struct xz_dec_lzma2 *s, struct xz_buf *b) if (in_avail > s->lzma2.compressed) return false; - s->lzma2.compressed -= in_avail; + s->lzma2.compressed -= (uint32_t)in_avail; b->in_pos = s->rc.in_pos; } @@ -919,7 +919,7 @@ static bool XZ_FUNC lzma2_lzma(struct xz_dec_lzma2 *s, struct xz_buf *b) in_avail = s->lzma2.compressed; memcpy(s->temp.buf, b->in + b->in_pos, in_avail); - s->temp.size = in_avail; + s->temp.size = (uint32_t)in_avail; b->in_pos += in_avail; } diff --git a/src/dos.c b/src/dos.c index 2a05566b..5f843a72 100644 --- a/src/dos.c +++ b/src/dos.c @@ -2,7 +2,7 @@ * Rufus: The Reliable USB Formatting Utility * DOS boot file extraction, from the FAT12 floppy image in diskcopy.dll * (MS WinME DOS) or from the embedded FreeDOS resource files - * Copyright © 2011-2013 Pete Batard + * Copyright © 2011-2015 Pete Batard * * 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 @@ -291,6 +291,7 @@ static BOOL ExtractMSDOS(const char* path) { char dllname[MAX_PATH] = "C:\\Windows\\System32"; int i, j; + UINT len; BOOL r = FALSE; HMODULE hDLL = NULL; char locale_path[MAX_PATH]; @@ -303,7 +304,11 @@ static BOOL ExtractMSDOS(const char* path) safe_strcat(locale_path, sizeof(locale_path), "LOCALE\\"); CreateDirectoryA(locale_path, NULL); - GetSystemDirectoryA(dllname, sizeof(dllname)); + len = GetSystemDirectoryA(dllname, sizeof(dllname)); + if ((len == 0) || (len >= sizeof(dllname))) { + uprintf("Unable to get system directory: %s\n", WindowsErrorString()); + goto out; + } safe_strcat(dllname, sizeof(dllname), "\\diskcopy.dll"); hDLL = LoadLibraryA(dllname); if (hDLL == NULL) { diff --git a/src/drive.c b/src/drive.c index 1e5f5800..bdff95bf 100644 --- a/src/drive.c +++ b/src/drive.c @@ -884,9 +884,9 @@ BOOL MountVolume(char* drive_name, char *drive_guid) char* AltMountVolume(const char* drive_name, uint8_t part_nr) { static char mounted_drive[] = "?:"; - const size_t bufsize = 65536; + const DWORD bufsize = 65536; char *buffer = NULL, *p, target[2][MAX_PATH], *ret = NULL; - int i; + size_t i; mounted_drive[0] = GetUnusedDriveLetter(); if (mounted_drive[0] == 0) { diff --git a/src/iso.c b/src/iso.c index 9075a8b1..562e1cd2 100644 --- a/src/iso.c +++ b/src/iso.c @@ -283,8 +283,10 @@ static void print_extracted_file(char* psz_fullpath, int64_t i_file_length) { size_t i, nul_pos; + if (psz_fullpath == NULL) + return; // Replace slashes with backslashes and append the size to the path for UI display - nul_pos = safe_strlen(psz_fullpath); + nul_pos = strlen(psz_fullpath); for (i=0; i + * Copyright © 2010-2015 Pete Batard * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -507,7 +507,7 @@ static __inline int SHDeleteDirectoryExU(HWND hwnd, const char* pszPath, FILEOP_ size_t wpszPath_len = strlen(pszPath) + 2; wchar_t* wpszPath = (wchar_t*)calloc(wpszPath_len, sizeof(wchar_t)); SHFILEOPSTRUCTW shfo = { hwnd, FO_DELETE, wpszPath, NULL, fFlags, FALSE, NULL, NULL }; - utf8_to_wchar_no_alloc(pszPath, wpszPath, wpszPath_len); + utf8_to_wchar_no_alloc(pszPath, wpszPath, (int)wpszPath_len); // FOF_SILENT | FOF_NOERRORUI | FOF_NOCONFIRMATION, ret = SHFileOperationW(&shfo); wfree(pszPath); diff --git a/src/registry.h b/src/registry.h index 28887349..707b8eea 100644 --- a/src/registry.h +++ b/src/registry.h @@ -1,7 +1,7 @@ /* * Rufus: The Reliable USB Formatting Utility * Registry access - * Copyright © 2012-2013 Pete Batard + * Copyright © 2012-2015 Pete Batard * * 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 @@ -82,13 +82,20 @@ static __inline BOOL _GetRegistryKey(HKEY key_root, const char* key_name, DWORD safe_strcat(long_key_name, sizeof(long_key_name), key_name); long_key_name[sizeof("SOFTWARE\\") + i-1] = 0; i++; - if (RegOpenKeyExA(key_root, long_key_name, 0, KEY_READ, &hApp) != ERROR_SUCCESS) + if (RegOpenKeyExA(key_root, long_key_name, 0, KEY_READ, &hApp) != ERROR_SUCCESS) { + hApp = NULL; goto out; + } } else { - if ( (RegOpenKeyExA(key_root, "SOFTWARE", 0, KEY_READ|KEY_CREATE_SUB_KEY, &hSoftware) != ERROR_SUCCESS) - || (RegCreateKeyExA(hSoftware, COMPANY_NAME "\\" APPLICATION_NAME, 0, NULL, 0, - KEY_SET_VALUE|KEY_QUERY_VALUE|KEY_CREATE_SUB_KEY, NULL, &hApp, &dwDisp) != ERROR_SUCCESS) ) - goto out; + if (RegOpenKeyExA(key_root, "SOFTWARE", 0, KEY_READ|KEY_CREATE_SUB_KEY, &hSoftware) != ERROR_SUCCESS) { + hSoftware = NULL; + goto out; + } + if (RegCreateKeyExA(hSoftware, COMPANY_NAME "\\" APPLICATION_NAME, 0, NULL, 0, + KEY_SET_VALUE | KEY_QUERY_VALUE | KEY_CREATE_SUB_KEY, NULL, &hApp, &dwDisp) != ERROR_SUCCESS) { + hApp = NULL; + goto out; + } } s = RegQueryValueExA(hApp, &key_name[i], NULL, &dwType, (LPBYTE)dest, &dwSize); @@ -97,8 +104,10 @@ static __inline BOOL _GetRegistryKey(HKEY key_root, const char* key_name, DWORD r = TRUE; } out: - RegCloseKey(hSoftware); - RegCloseKey(hApp); + if (hSoftware != NULL) + RegCloseKey(hSoftware); + if (hApp != NULL) + RegCloseKey(hApp); return r; } @@ -109,17 +118,23 @@ static __inline BOOL _SetRegistryKey(HKEY key_root, const char* key_name, DWORD HKEY hSoftware = NULL, hApp = NULL; DWORD dwDisp, dwType = reg_type; - if ( (RegOpenKeyExA(key_root, "SOFTWARE", 0, KEY_READ|KEY_CREATE_SUB_KEY, &hSoftware) != ERROR_SUCCESS) - || (RegCreateKeyExA(hSoftware, COMPANY_NAME "\\" APPLICATION_NAME, 0, NULL, 0, - KEY_SET_VALUE|KEY_QUERY_VALUE|KEY_CREATE_SUB_KEY, NULL, &hApp, &dwDisp) != ERROR_SUCCESS) ) { + if (RegOpenKeyExA(key_root, "SOFTWARE", 0, KEY_READ|KEY_CREATE_SUB_KEY, &hSoftware) != ERROR_SUCCESS) { + hSoftware = NULL; + goto out; + } + if (RegCreateKeyExA(hSoftware, COMPANY_NAME "\\" APPLICATION_NAME, 0, NULL, 0, + KEY_SET_VALUE|KEY_QUERY_VALUE|KEY_CREATE_SUB_KEY, NULL, &hApp, &dwDisp) != ERROR_SUCCESS) { + hApp = NULL; goto out; } r = (RegSetValueExA(hApp, key_name, 0, dwType, src, src_size) == ERROR_SUCCESS); out: - RegCloseKey(hSoftware); - RegCloseKey(hApp); + if (hSoftware != NULL) + RegCloseKey(hSoftware); + if (hApp != NULL) + RegCloseKey(hApp); return r; } diff --git a/src/rufus.h b/src/rufus.h index cfe0e926..1841ab60 100644 --- a/src/rufus.h +++ b/src/rufus.h @@ -24,6 +24,7 @@ // Disable some VS2012 Code Analysis warnings #pragma warning(disable: 4996) // Ignore deprecated (eg. GetVersionEx()), as we have to contend with XP #pragma warning(disable: 28159) // VS2012 wants us to use GetTickCount64(), but it's not available on XP +#pragma warning(disable: 6258) // I know what I'm using TerminateThread for #endif #pragma once diff --git a/src/rufus.rc b/src/rufus.rc index 6765b78f..40046106 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -32,7 +32,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 242, 376 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Rufus 2.0.0.583" +CAPTION "Rufus 2.0.0.584" FONT 8, "Segoe UI", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,127,339,50,14 @@ -157,7 +157,7 @@ END IDD_DIALOG_XP DIALOGEX 12, 12, 242, 376 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Rufus 2.0.0.583" +CAPTION "Rufus 2.0.0.584" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,127,339,50,14 @@ -283,7 +283,7 @@ END IDD_DIALOG_RTL DIALOGEX 12, 12, 242, 376 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL -CAPTION "Rufus 2.0.0.583" +CAPTION "Rufus 2.0.0.584" FONT 8, "Segoe UI", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,127,339,50,14 @@ -415,7 +415,7 @@ END IDD_DIALOG_RTL_XP DIALOGEX 12, 12, 242, 376 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL -CAPTION "Rufus 2.0.0.583" +CAPTION "Rufus 2.0.0.584" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,127,339,50,14 @@ -671,8 +671,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,0,0,583 - PRODUCTVERSION 2,0,0,583 + FILEVERSION 2,0,0,584 + PRODUCTVERSION 2,0,0,584 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -689,13 +689,13 @@ BEGIN BEGIN VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "2.0.0.583" + VALUE "FileVersion", "2.0.0.584" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011-2015 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "OriginalFilename", "rufus.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "2.0.0.583" + VALUE "ProductVersion", "2.0.0.584" END END BLOCK "VarFileInfo" diff --git a/src/stdfn.c b/src/stdfn.c index b516886e..2458e7fb 100644 --- a/src/stdfn.c +++ b/src/stdfn.c @@ -691,6 +691,7 @@ DWORD WINAPI SetLGPThread(LPVOID param) NULL, &policy_key, &disp); if (r != ERROR_SUCCESS) { uprintf("SetLGP: Failed to open LGPO path %s - error %x\n", p->szPath, hr); + policy_key = NULL; goto error; } @@ -759,6 +760,7 @@ BOOL SetLGP(BOOL bRestore, BOOL* bExistingKey, const char* szPath, const char* s CloseHandle(thread_id); return FALSE; } - GetExitCodeThread(thread_id, &r); + if (!GetExitCodeThread(thread_id, &r)) + return FALSE; return (BOOL) r; } diff --git a/src/vhd.c b/src/vhd.c index 5cea1a4b..1a2d907b 100644 --- a/src/vhd.c +++ b/src/vhd.c @@ -669,7 +669,8 @@ out: if (hImage != NULL) pfWIMCloseHandle(hImage); if (hWim != NULL) pfWIMCloseHandle(hWim); } - pfWIMUnregisterMessageCallback(NULL, (FARPROC)WimProgressCallback); + if (pfWIMUnregisterMessageCallback != NULL) + pfWIMUnregisterMessageCallback(NULL, (FARPROC)WimProgressCallback); safe_free(wimage); safe_free(wdst); ExitThread((DWORD)r); @@ -689,6 +690,7 @@ BOOL WimApplyImage(const char* image, int index, const char* dst) return FALSE; } WaitForSingleObject(handle, INFINITE); - GetExitCodeThread(handle, &dw); + if (!GetExitCodeThread(handle, &dw)) + return FALSE; return (BOOL)dw; }