Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows: Can't read string length at ../Setup/Inno/FieldReader.pm line 85 #7

Open
riverar opened this issue Aug 17, 2017 · 8 comments

Comments

@riverar
Copy link

riverar commented Aug 17, 2017

Installer version: 5507u
Perl: ActiveState Perl 5, version 22, subversion 1 (v5.22.1) built for MSWin32-x86-multi-thread-64int
Host: Windows 10 16257.rs_prerelease
Stack:

Can't read string length at Setup/Inno/FieldReader.pm line 85.
 at Setup/Inno/FieldReader.pm line 85.
        Setup::Inno::FieldReader::ReadString(Setup::Inno::Struct5507u=HASH(0x614c424), 2) called at Setup/Inno/Struct5507u.pm line 70
        Setup::Inno::Struct5507u::TSetupHeader(Setup::Inno::Struct5507u=HASH(0x614c424)) called at Setup/Inno/Interpret.pm line 214
        Setup::Inno::Interpret::SetupHeader(Setup::Inno::Interpret5309=HASH(0x5bc502c), Setup::Inno::Struct5507u=HASH(0x614c424)) called at Setup/Inno.pm line 96
        Setup::Inno::Setup0(Setup::Inno=HASH(0x5aeb5ac)) called at Setup/Inno.pm line 135
        Setup::Inno::FileCount(Setup::Inno=HASH(0x5aeb5ac)) called at uninno.pl line 49

Sample: https://go.skype.com/desktop.preview.download

@riverar riverar changed the title Can't read string length at ../Setup/Inno/FieldReader.pm line 85 Windows: Can't read string length at ../Setup/Inno/FieldReader.pm line 85 Aug 17, 2017
@onitake
Copy link
Owner

onitake commented Aug 18, 2017

Thanks, I'll look into it.

@onitake
Copy link
Owner

onitake commented Aug 20, 2017

I can list and unpack the installer perfectly fine on a Docker container running Debian Linux with Perl 5.26.0.

It's possible that Perl on Windows has some incompatibilities with the way uninno treats compressed data. I don't have a Windows system to test this on, so you'll have to rely on a proper Unix environment for the moment. I'm working on somewhat more compatible decompression code, but it's not ready yet. Sorry.

@riverar
Copy link
Author

riverar commented Aug 20, 2017

I can confirm this works fine in Windows Subsystem for Linux, which is a decent workaround for Windows 10 users.

@onitake
Copy link
Owner

onitake commented Aug 24, 2017

I removed the dependency on Unix-style pipes and xz in the latest HEAD.
Can you test if it works in Windows now?

Thanks!

@riverar
Copy link
Author

riverar commented Aug 24, 2017

Did you push? 😄

@onitake onitake reopened this Aug 24, 2017
@onitake
Copy link
Owner

onitake commented Aug 24, 2017

Wooops, I didn't. Sorry. 😬

@riverar
Copy link
Author

riverar commented Aug 24, 2017

If I keep the executable filename intact (with hyphens):

Use of uninitialized value $io in concatenation (.) or string at .../Win/Exe.pm line 33.
Can't open  at ../Setup/Inno.pm line 42.

If I rename executable to simple.exe:

Installer version: 5507u
Invalid CRC in block at ../Setup/Inno/Interpret4106.pm line 31.

@onitake
Copy link
Owner

onitake commented Aug 25, 2017

You mean it fails when the installer filename contains hyphens???
I cannot even imagine how this could be a problem...

Admittedly, there is a small bug here: The error should happen earlier, when the installer can't be opened. But I don't see why opening the installer should fail.

As for the CRC error, seems like something is not reading the data correctly. I verified with the installer you posted, and it still works fine on Linux.

Well, it was worth a shot. I'll keep the bug open, but no guarantees that it gets fixed.
Thanks for the help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants