You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The code downloads and executes files from external URLs without proper validation. The XML file download and processing could be vulnerable to XXE attacks.
XMLHTTP, XMLDoc, NewNode, RootNode: Variant;
Path: String;
begin
if MsgBox('Setup will now use MSXML to download XML file ''' + XMLURL + ''' and save it to the source folder.'#13#13'Setup will then load, modify and save this XML file. Do you want to continue?', mbInformation, mb_YesNo) = idNo then
Exit;
{ Create the main MSXML COM Automation object }
PowerShell execution with bypass policy and password generation could expose sensitive information. The script allows unrestricted PowerShell execution which is a security risk.
The html_errors setting should be set to Off in production for security reasons to avoid potential HTML injection vulnerabilities and information disclosure through error messages.
[To ensure code accuracy, apply this suggestion manually]
Suggestion importance[1-10]: 8
__
Why: Disabling HTML errors in production is an important security measure to prevent potential HTML injection vulnerabilities and sensitive information disclosure through formatted error messages.
Medium
Possible issue
Handle URL launch failures
Add error handling for ShellExecAsOriginalUser to handle cases where the URL launch fails, preventing silent failures.
procedure LinkLabelOnLinkClick(Sender: TObject; const Link: string; LinkType: TSysLinkType);
var
ErrorCode: Integer;
begin
if (LinkType = sltID) and (Link = 'jrsoftware') then
ShellExecAsOriginalUser('open', 'https://jrsoftware.org', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
else if LinkType = sltURL then
ShellExecAsOriginalUser('open', Link, '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
+ if ErrorCode <> 0 then+ MsgBox(Format('Failed to open URL. Error code: %d', [ErrorCode]), mbError, MB_OK);
end;
Apply this suggestion
Suggestion importance[1-10]: 7
__
Why: Adding error handling for ShellExecAsOriginalUser is important for user experience as it provides feedback when URL launches fail instead of silently failing.
Medium
Fix floating point serialization precision
The serialize_precision value should be set to -1 instead of 17 to ensure proper floating point serialization and JSON encoding. The value -1 uses dtoa mode 0 which automatically selects the best precision.
[To ensure code accuracy, apply this suggestion manually]
Suggestion importance[1-10]: 7
__
Why: Using -1 for serialize_precision enables automatic optimal precision selection via dtoa mode 0, which is better than hardcoding to 17 for both serialization and JSON encoding.
Medium
Add null check for timer cleanup
Add a null check for TimerID before attempting to kill the timer to prevent potential issues if the timer was never created.
procedure DeinitializeSetup;
begin
- if TimerID <> 0 then+ if Assigned(TimerID) and (TimerID <> 0) then begin
KillTimer(0, TimerID);
+ TimerID := 0;+ end;
end;
Apply this suggestion
Suggestion importance[1-10]: 5
__
Why: The suggestion adds defensive programming by checking if TimerID is assigned and resets it after cleanup, which improves robustness and prevents potential issues with uninitialized timers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Type
Enhancement, Documentation, Localization, Configuration changes, Other
Description
Enhanced UI elements and link handling in wizard pages, including new procedures and layout adjustments.
Improved multi-architecture support and file selection logic for better compatibility.
Added secure XML handling, ZIP extraction functionality, and PowerShell integration for runtime and compile-time tasks.
Broadened architecture compatibility for x64 setups and improved timer management in DLL examples.
Updated translations for multiple languages, including new support for Tamil and Hungarian.
Modernized HTML structure, updated revision history, and improved documentation across various files.
Updated PHP configuration files with revised settings, improved clarity, and updated documentation links.
Fixed typos, improved code clarity, and enhanced security with SHA256 validation.
Added a shortcut to the Inno Setup FAQ page and updated copyright information to 2025.
Changes walkthrough 📝
14 files
CodeClasses.iss
Enhanced UI elements and link handling in wizard pages.bin/lib/innosetup/app/Examples/CodeClasses.iss
LinkLabelOnLinkClickto handle link clicks withspecific behavior for
sltIDandsltURLlink types.TNewStaticTextwith multi-line support andTNewLinkLabelwith link handling.UI consistency.
TNewStaticTextwithTNewLinkLabelfor URL handling inCreateAboutButtonAndURLLabel.64BitThreeArch.iss
Improved multi-architecture support and file selection logic.bin/lib/innosetup/app/Examples/64BitThreeArch.iss
x64compatibleandArm64forbetter compatibility.
checks like
PreferArm64Files.architecture-specific logic.
CodeAutomation.iss
Added secure XML handling and ZIP extraction functionality.bin/lib/innosetup/app/Examples/CodeAutomation.iss
XMLURLto use HTTPS for secure connections.UnzipButtonOnClickto download and extract a ZIPfile using shell automation.
PowerShell.iss
Demonstrated PowerShell integration for runtime and compile-timetasks.bin/lib/innosetup/app/Examples/PowerShell.iss
runtime.
clipboard.
during setup initialization.
64BitTwoArch.iss
Enhanced support for x64-compatible architectures.bin/lib/innosetup/app/Examples/64BitTwoArch.iss
x64compatiblefor broadercompatibility.
64Bit.iss
Broadened architecture compatibility for x64 setups.bin/lib/innosetup/app/Examples/64Bit.iss
x64compatibleforcompatibility with Windows 11 on Arm.
behavior.
CodeDlg.iss
Improved folder naming and security with SHA256 validation.bin/lib/innosetup/app/Examples/CodeDlg.iss
CodeDll.iss
Improved timer management and cleanup in DLL example.bin/lib/innosetup/app/Examples/CodeDll.iss
KillTimerfunction to clean up timers during deinitialization.MyTimerProcto handle cases whereWizardFormis nil.DeinitializeSetupprocedure to ensure proper cleanup.CodeDownloadFiles.iss
Enhanced download page display and URL handling.bin/lib/innosetup/app/Examples/CodeDownloadFiles.iss
dontcount=1for better trackingcontrol.
UnicodeExample1.iss
Ensured compatibility with UTF-8 encoding in Unicode example.bin/lib/innosetup/app/Examples/UnicodeExample1.iss
without BOM.
Tamil.isl
Added Tamil language support for Inno Setup translations.bin/lib/innosetup/app/Languages/Tamil.isl
messages.
Slovak.isl
Updated Slovak language file with new translations and metadata.bin/lib/innosetup/app/Languages/Slovak.isl
messages.
Hungarian.isl
Added Hungarian language support for Inno Setup.bin/lib/innosetup/app/Languages/Hungarian.isl
prompts.
uninstallation.
French.isl
Updated French language file for Inno Setup 6.4.0+.bin/lib/innosetup/app/Languages/French.isl
1 files
CodeAutomation2.iss
Fixed typos and improved code clarity.bin/lib/innosetup/app/Examples/CodeAutomation2.iss
TMonthyDatetoTMonthlyDate).4 files
ISPPBuiltins.iss
Updated copyright information for ISPP builtins.bin/lib/innosetup/app/ISPPBuiltins.iss
whatsnew.htm
Updated revision history and modernized HTML structure.bin/lib/innosetup/app/whatsnew.htm
changes.
license.txt
Updated license copyright information to 2025.bin/lib/innosetup/app/license.txt
isfaq.url
Added shortcut to Inno Setup FAQ page.bin/lib/innosetup/app/isfaq.url
2 files
Turkish.isl
Updated Turkish translation for version 6.4.0+.bin/lib/innosetup/app/Languages/Turkish.isl
Armenian.isl
Updated Armenian translation for version 6.4.0+.bin/lib/innosetup/app/Languages/Armenian.isl
2 files
php.ini-production
Updated PHP configuration file with revised settings and documentationlinks.tools/php/php.ini-production
https://tohttp://.settings.
clarity and functionality.
php.ini-development
Improved PHP configuration file with updated settings and comments.tools/php/php.ini-development
accuracy.
options.
43 files