diff --git a/dll/win32/msi/dialog.c b/dll/win32/msi/dialog.c index 8e4c1511081..a696e259be0 100644 --- a/dll/win32/msi/dialog.c +++ b/dll/win32/msi/dialog.c @@ -3230,6 +3230,9 @@ static void msi_dialog_vcl_add_drives( msi_dialog *dialog, msi_control *control continue; } + if (!GetDiskFreeSpaceExW(ptr, &free, &total, NULL)) + goto next; + lvitem.mask = LVIF_TEXT; lvitem.iItem = i; lvitem.iSubItem = 0; @@ -3237,7 +3240,6 @@ static void msi_dialog_vcl_add_drives( msi_dialog *dialog, msi_control *control lvitem.cchTextMax = lstrlenW(ptr) + 1; SendMessageW( control->hwnd, LVM_INSERTITEMW, 0, (LPARAM)&lvitem ); - GetDiskFreeSpaceExW(ptr, &free, &total, NULL); difference = free.QuadPart - cost; StrFormatByteSizeW(total.QuadPart, size_text, MAX_PATH); @@ -3263,6 +3265,7 @@ static void msi_dialog_vcl_add_drives( msi_dialog *dialog, msi_control *control lvitem.cchTextMax = lstrlenW(size_text) + 1; SendMessageW( control->hwnd, LVM_SETITEMW, 0, (LPARAM)&lvitem ); + next: ptr += lstrlenW(ptr) + 1; i++; }