1
1
Fork 0
mirror of https://github.com/pbatard/rufus.git synced 2026-07-09 06:55:39 +00:00
Commit graph

2,396 commits

Author SHA1 Message Date
Pete Batard
6d8fbf9830
Rufus 4.15 (Build 2396) v4.15
* Add SquashFS file system detection and update files DB to latest.
2026-06-30 11:58:42 +01:00
Pete Batard
eedeaea75f
[misc] fix multiple small issues
* Use the actual Bled latest to fix a potential crash in ZSTD decompression as well as wrong disk size computation.
* Fix wrong parenthesis placement for projected vs actual disk size check.
* Update GitHub Actions to latest. Closes #3000.
2026-06-22 18:15:06 +01:00
Pete Batard
2b5b6d2d7c
[cmp] update Bled to latest and get projected size for compressed disk images
* The latest Bled, when compiled with the BLED_EXPECT_DISK_IMAGE option, allows us to get
  the size of the decompressed disk image, even for compression formats that do not report
  the decompressed size natively, so use that.
2026-06-21 14:26:11 +01:00
Pete Batard
2350489fe9
[uefi] update uefi-ntfs driver to latest and add RISC-V 64 support v4.15_BETA2
* The updated version fixes an error when trying to load the NTFS driver on x64.
* Closes #2997.
* Also add RISC-V 64 bootloader and NTFS/exFAT drivers since they might come handy.
2026-06-19 22:58:17 +01:00
Pete Batard
ccc7160f81
[cmp] update Bled to latest and enable progress reporting on decompressed size
* Closes #2968 as the new sector alignment fixes from Bled should fix the issue.
* This also allows us to report progress against the decompressed data (where the
  decompressed size can be known), which provides a better user experience.
* Also fix a handful of MinGW warnings.
2026-06-19 17:41:20 +01:00
Pete Batard
b7bd966926
[wue] append " (SILENT)" to the label name when using the silent option v4.15_BETA
* Also update ChangeLog for BETA.
2026-06-17 11:23:39 +01:00
Ejigs
925a014d74
[core] fix unrestricted entity expansion and integer overflow in ezxml
* Add EZXML_MAXEXP limit (8 MB) to ezxml_decode() to prevent exponential memory growth from nested entity definitions (billion laughs attack).
* Add recursion depth limit to ezxml_ent_ok() to prevent CPU exhaustion during DTD processing of deeply nested entity definitions.
* Change _realloc() parameter from unsigned int to size_t to prevent silent truncation of allocation sizes on 64-bit builds.
* Change size calculation variables in ezxml_decode() from long to size_t/ssize_t to prevent signed integer overflow on Windows where long is 32-bit even on x64.
* Add NULL check for strchr() result before pointer arithmetic in entity expansion to prevent undefined behavior on malformed input.
* Add bounds check in ezxml_internal_dtd() entity name parsing to prevent write past buffer.
* Closes Security Advisory report https://github.com/pbatard/rufus/security/advisories/GHSA-55r2-34wg-8mv9.
2026-06-17 11:02:45 +01:00
Pete Batard
5989fcbc6d
[wue] make it more explicit/scary to use the silent option
* User now has to click 3 very explicit agreement checkboxes, in the warning dialog, before they can proceed with the silent option.
* Note that the text of these checkboxes was translated by AI, so we cannot vouch for accuracy.
* Also hide/display the silent option according to the state of the local account/regional/privacy options it depends on, which
  should also help reduce the possibility of people proceeding with the silent option by mistake.
2026-06-16 13:47:45 +01:00
Pete Batard
07ae99e9f4
[uefi] update uefi-ntfs, ntfs-3g and uefi-md5sum to latest
* This is done to prevent a crash/reboot on Snapdragon X based platforms due to the ntfs-3g driver
  attempting to access freed memory if not all file handles were closed on UEFI runtime exit.
* Closes #2934.
* https://github.com/pbatard/uefi-ntfs/releases/tag/v2.8
* https://github.com/pbatard/ntfs-3g/releases/tag/1.8
* https://github.com/pbatard/uefi-md5sum/releases/tag/v1.2
2026-06-15 23:25:03 +01:00
Pete Batard
b841090800
[core] fix two small label sanitisation issues
* memmove(label, &label[i], len - i) is missing the copy of the NUL terminator due to size being 1 char too small.
* strcpy(s, &s[strlen(remove[i])]) can have overlapped content which is undefined behaviour, so use memmove() instead.
* Closes #2992, with thanks to @christian8641.
2026-06-14 12:58:39 +01:00
Pete Batard
f23e6c5f7f
[wue] fix malformed OneDrive removal PowerShell command
* Closes #2984.
* Also Fix "Enable runtime UEFI media validation" checkbox not always being properly enabled
  and ensure the README is also updated for VS2026.
2026-06-13 20:26:45 +01:00
Tyler Kinney
03ddf739b5
[internal] update solution files and workflows to VS2026
* Also remove ARM support.
* Closes #2925.
2026-06-13 20:12:09 +01:00
Pete Batard
33ed3f85e6
[wue] filter out '&' characters as part of a username
* Closes #2991.
* Also factorize the list of characters we filter between wue.c and stdlg.c.
2026-06-13 00:28:18 +01:00
Pete Batard
ffab56f2ef
[core] improve WriteFileWithRetry()
* Cancelling now takes precedence over retries.
* Simplify the code and use an OVERLAPPED for re-positioning.
2026-06-03 16:45:39 +01:00
Pete Batard
74b1102814
[wue] add more forbidden local account names
* Per https://learn.microsoft.com/en-us/archive/technet-wiki/13813.localized-names-for-administrator-account-in-windows#list-of-languages-that-localize-the-administrator-account-name
  Windows may localise the 'Administrator' account, so names like 'Administrador' need to be filtered out.
* Also add a few more account names that are likely to be problematic.
* Closes #2974.
2026-05-18 16:20:35 +01:00
Pete Batard
704d146f22
[ui] fix an infinite loop when using Windows ISOs that contain multiple WIMs
* SelectionDialog() was calling GetEditions() unconditionally, which, in the case of an image
  with multiple WIMs, produced a new re-entrant call to SelectionDialog() to select the WIM,
  thereby producing a new call to GetEditions() and an infinite loop.
* This unconditional call also had the (minor) side effect of calling wim_open() against ISOs
  without WIMs, such as Linux ones, resulting in 'Could not open WIM: 43' log errors.
* Fix this by making sure that:
  - GetEditions() is only called when needed.
  - SelectionDialog() is re-entrant, to at least one level.
2026-05-07 18:28:21 +01:00
Pete Batard
dea9451869
[wue] fix Silent Windows installation failing at 75% in most cases
* Well, our super-smart way of presenting users with the disk partitioning dialog, so that
  they could provide disk drivers instead of seeing their installation drive scratched, was
  once again foiled by Windows Setup being an ass when it comes to assigning drive letters.
* First of all, along with S:, U: and X: you don't want to use D: as the drive letter as
  it only works if your target drive is "unclean", but, more importantly, the drive letter
  assignation process, as designed by Microsoft, ONLY EVER WORKS FOR FIXED DRIVES, and is
  not designed to be used with USB drives that are of type REMOVABLE. But of course, since
  Microsoft duplicated the drive assignation in 2 steps, one before the file copy and one
  after, and they only validate that the drive being mapped is of type FIXED in the latter,
  you don't get the error early, where you'd be able to catch it or at least make some sense
  of it, but MUCH, MUCH LATER...
* And that is the reason why pretty much everybody who tries the new silent install ends up
  with an error at 75% during the file copy phase, since this is when Windows Setup performs
  its SECOND remapping of the drive letter and actually tests if the drive is of a type it
  can bloody handle! Oh and since our fastest test media are all UAS/SSD-based FIXED drives,
  this is what we used during our extensive testing of the silent installation feature, and
  the reason why we never saw the issue in the first place.
* Our fix therefore is to drop the letter assignation altogether, since we'll never be able
  to use it with the vast majority of consumer USB drive, and instead switch to trying to
  relabel the UEFI:NTFS partition, or at least the partition at [disk 1, partition 2] where
  it is expected to reside (yeah, don't ask me why Microsoft starts numbering disks at 0
  but partitions at 1), since this should be an one-step operation that works regardless of
  your drive is of type FIXED or REMOVABLE.
* Testing for the UEFI:NTFS partition should also help us bail out the partition screen on
  systems where the user forgot to disconnect all the disks they don't want to see scratched
  (since, in most cases these would be data disks without a second partition) thereby helping
  prevent unwanted data loss. This should also bail to disk partitioning for people who want
  to split WIMs rather than use UEFI:NTFS, but it's their problem. Full silent install is for
  UEFI:NTFS only.
* Finally, on some systems that have card readers that Windows Setup happens to map as formal
  disks (in my experience, this seems to be the exception rather than the rule), we will also
  bail out to the disk partition screen, even if the card reader is empty, but there's really
  only so much we can accomplish to address all system scenarios with the limited commands we
  have at our disposal during unattended partitioning. Since our priority is to prevent data
  loss, as well as show the partition screen whenever it is needed, we consider this annoyance
  as a small trade-off, especially as these users should be able to disable card readers from
  their UEFI setting. Again, our silent installation process expects that the user will have
  disconnected ALL disks except the one they want to install Windows on and that includes card
  readers). If that is not the case, all bets are off, and we will try to show the partition
  screen, to make the user aware of the deviation.
* Closes #2960.
2026-05-06 14:17:16 +01:00
good work, great work
5782ea8ecb
[loc] update Malay translation to latest
* Closes #2961.
2026-05-03 21:28:34 +01:00
Pete Batard
69e5c4c717
[wue] fix first option always being checked by default
* This fixes a regression introduced in 92a8926c18.
* Closes #2965.
* Also update version to rufus-next.
2026-05-03 21:23:49 +01:00
Pete Batard
f53ee063b6
Rufus 4.14 (Build 2377) v4.14 2026-04-30 11:44:05 +01:00
Pete Batard
82d7a30fe7
[iso] improve Isolinux bootloader detection
* Mostly to avoid 'Image has an unknown Master Boot Record' with Debian and other Isolinux based distros.
2026-04-30 00:15:49 +01:00
Pete Batard
611c6a18f8
[iso] improve GRUB 2.0 bootloader detection
* Mostly to avoid 'Image has an unknown Master Boot Record' with Ubuntu.
* Also the usual cleanup and GitHub Actions bump.
2026-04-29 17:35:04 +01:00
Andrei Ilas
fa3c942434
[loc] update Romanian translation to latest 2026-04-27 18:02:40 +01:00
Trần Thái An
967747399a
[loc] update Vietnamese translation to latest 2026-04-23 16:18:17 +01:00
Pete Batard
2414335217
[misc] update ChangeLog for BETA
* Also remove some TODOs we don't plan to address.
2026-04-21 11:57:00 +01:00
Riku Brander
a4f0e8748e
[loc] update Finnish translation to latest 2026-04-20 00:58:17 +01:00
Martin Kubánik
001258cf14
[loc] update Slovak translation to latest 2026-04-20 00:54:22 +01:00
Guesty
3a58ed2d34
[loc] update Italian translation to latest 2026-04-18 22:56:58 +01:00
Pete Batard
d10fabe0f1
[misc] update the Bitdefender VHD detection
* Looks like Bitdefender may have changed the label of their hidden VHD, so use a less subtle approach
  and filter any VHD under 32 MB that stars with "Bitdefender".
* Closes #2953.
2026-04-18 16:18:42 +01:00
Kiril Razguliajev
74efb16c9d
[loc] update Lithuanian translation to latest 2026-04-18 00:42:51 +01:00
Ahmed Rasnaama
353f78f1dd
[loc] update Arabic translation to latest 2026-04-14 14:06:04 +01:00
Pete Batard
bca7974d3e
[wue] trim the local account name string
* Closes #2950.
2026-04-14 14:03:59 +01:00
Dayking Cheng
770d05c758
[loc] update Traditional Chinese translation to latest 2026-04-14 13:28:25 +01:00
Pete Batard
9fc9aacd9d
[wue] use a heavier approach when disabling frickin' Microsoft Teams with QoL
* Also disable "suggested content" (*ads*) in the menu when QoL is selected.
2026-04-14 13:24:56 +01:00
Na Jiyoun
7ede01d61d
[loc] update Korean translation to latest 2026-04-13 12:18:54 +01:00
Niko
b5de282b8b
[loc] update Bulgarian translation to latest 2026-04-11 19:42:54 +01:00
Костянтин Сергійович
6f32d59666
[loc] update Ukrainian translation to latest
* Also fix a missing apostrophe in MSG_356 for English.
2026-04-11 19:38:44 +01:00
五月雨
847dee9759
[loc] update Japanese translation to latest 2026-04-10 14:02:32 +01:00
MasterVito
3186373d70
[loc] update Persian translation to latest 2026-04-10 13:45:00 +01:00
Marco A. Ramirez Madrid
58a0c71f95
[loc] update Spanish translation to latest 2026-04-08 01:53:32 +01:00
Jakub Zieciak
578477636e
[loc] update Norwegian and Polish translations to latest 2026-04-08 01:48:21 +01:00
Miloš Ljubičić
c90f76f2bc
[loc] update Serbian translation 2026-04-08 01:41:56 +01:00
Mike Handberg Hovedskov
6d7d469b68
[loc] update Danish translation to latest 2026-04-07 17:23:54 +01:00
Christos Alvanos
355b344256
[loc] update Greek translation to latest 2026-04-07 17:21:00 +01:00
Marcos Mello
9cdaa10375
[loc] update Brazilian Portuguese translation to latest 2026-04-05 22:46:18 +01:00
Forcipal Boniness
b890d15628
[loc] update Indonesian translation to latest 2026-04-05 22:41:56 +01:00
Pete Batard
e8207ea982
[iso] reduce the auto-expand size for El-Torito images
* Well, thinking that OEMs would do the right thing and only use 0/1 as image size *if* the
  actual size is more than 0xffff sectors (i.e. 128 MB) was obviously never going to end well
  and Lenovo/Nero chose not to bother.
* We therefore reduce the watershed point to 8 MB.
* Also improve logging and avoid reopening an ISO.
2026-04-01 18:24:01 +01:00
Pete Batard
860adf3bde
[wue] remove all dialogs from silent installs without Ethernet
* Without this, the silent/automated installs could still be interrupted by the "let's connect you to a network" dialog.
2026-04-01 13:45:28 +01:00
Maison da Silva
dd493ada28
[loc] update Portuguese (Brazilian) translator contact e-mail
* Closes #2946.
2026-03-31 16:59:19 +01:00
Jiawei Wang
25036e0417
[loc] update Simplified Chinese translation to latest 2026-03-31 16:49:20 +01:00