Skip to content

Add support for AiR Setup 5.2.0 variant - #17

Merged
crazy-max merged 1 commit into
crazy-max:devfrom
PatrykMis:inno-5200-air
Aug 19, 2026
Merged

crazy-max merged 1 commit into
crazy-max:devfrom
PatrykMis:inno-5200-air

Conversation

@PatrykMis

Copy link
Copy Markdown

This adds support for the modified Inno Setup variant identified by:

AiR Setup Setup Data (5.2.0)

The variant is based on Inno Setup 5.2.0, but its main setup header contains two additional length-prefixed strings after AppModifyPath, apparently used for the skin and music filenames.

Without accounting for these fields, the parser becomes misaligned before LeadBytes and the subsequent entry counts. In the affected installer this eventually causes directory_count to be interpreted as an extremely large value, resulting in std::bad_alloc.

This change:

  • adds an Air version flag,
  • recognizes the original AiR Setup Setup Data (5.2.0) signature,
  • consumes the two additional binary strings before continuing with the standard Inno Setup 5.2.0 header layout,
  • keeps version comparisons and the rest of the 5.2.0 parsing logic unchanged.

The additional strings are parsed dynamically rather than skipped using a fixed byte count, so different skin or music filenames remain supported.

Fixes upstream dscharrer#125

Signed-off-by: Patryk Miś <foss@patrykmis.com>

@crazy-max crazy-max left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks

@crazy-max
crazy-max merged commit eef23e6 into crazy-max:dev Aug 19, 2026
33 checks passed
@PatrykMis
PatrykMis deleted the inno-5200-air branch August 19, 2026 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants