[misc] don't pass an output size in DeviceIoControl() when not needed

* Also improve partition creation and address 2 Coverity warnings.
This commit is contained in:
Pete Batard 2024-04-01 14:56:06 +01:00
parent 8a5a5a318a
commit 6dac531552
No known key found for this signature in database
GPG key ID: 38E0CF5E69EDD671
8 changed files with 52 additions and 66 deletions

View file

@ -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; i<icondir->idCount; 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; i<icondir->idCount; 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);