Jump to content

Bug: HFSLIP fails to notice invalid extract.exe


Guest einpoklum

Recommended Posts

Guest einpoklum

There are several extract.exe 's which may occur in the path before Microsoft's extract.exe : Cygwin's, and the Windows UNIX binaries distribution unixtools . HFSLIP fails to notice when these are present, and tries to use them instead of the valid extract, reporting that it has successfully completed its work while in fact it has not.

ERROR_REPORT.TXT

Link to comment
Share on other sites


This is an interesting idea, and one that would have saved me TONS of trouble early in my HFSLIP days since I had a similar issue. The script could also be made to check the filesize and compare it to "known good" filesizes of extract.exe.

Link to comment
Share on other sites

Guest einpoklum

Uh, how about checking for the "invalid switch" error message you get from running cygwin's extract.exe ? Or making sure cygwin and unixtools aren't in the path (or removing them from the path)?

Link to comment
Share on other sites

Just realized the following:

The name of Microsoft's module in Windows XP (and 2003) is EXPAND.EXE, not EXTRACT.EXE. I believe this is also true on 2000, but I could be wrong.

@einpoklum, can you check to see whether 2000 uses extract or expand?

---------------------------------------------------------------------------------------------------------------------------------------------------

@TAiN:

AFAIK, there is no way to check and verify the size of a file at the command prompt. Although you can produce it using DIR, it might take some time to integrate it into the script.

Maybe doing this would work:

1. DIR %windir%\system32\EXPAND.EXE>TEMP.TXT

2. Find the string "15,872 bytes" (for XP's module) in TEMP.TXT (not sure of the exact command that should be used; I'm not familiar with FINDSTR)

3. If the string is found, use that EXPAND.EXE.

4. If the string cannot be found, report an error or search for EXPAND.EXE (don't think this is possible).

Edited by Super-Magician
Link to comment
Share on other sites

1. DIR %windir%\system32\EXPAND.EXE>TEMP.TXT

2. Find the string "15,872 bytes" (for XP's module) in TEMP.TXT (not sure of the exact command that should be used; I'm not familiar with FINDSTR)

3. If the string is found, use that EXPAND.EXE.

4. If the string cannot be found, report an error or search for EXPAND.EXE (don't think this is possible).

That is almost exactly what I was thinking.

Also, I have both expand.exe and extract.exe on my 2kSP4 box.

expand.exe is version 5.0.2134.1 and 15,632 bytes

extract.exe is version 1.00.603.0 and 93,242 bytes

Link to comment
Share on other sites

HFSLIP doesn't use extract.exe; only expand.exe. I had a quick look at the entire script and it seems to me you can get away with placing the "correct" version of expand.exe in the HFSLIP folder (for now) except for the integration of msxmlcab.exe.

Checking for the file size is out of the question. On a Dutch XP system, for example, the file is 16,896 bytes large.

Where can I get this cygwin version?

Link to comment
Share on other sites

Try the latest test release. It uses the full path to expand.exe. There are two locations HFSLIP check in: %WINDIR%\SYSTEM32 and the HFSLIP folder. The latter gets preference. So if the version in SYSTEM32 is not the original MS version, place a copy of the MS version in the HFSLIP folder.

Link to comment
Share on other sites

Guest einpoklum

Sorry sorry sorry! The entire bug report should have been about expand.exe, not extract.exe . I just got them mixed up when reporting the bug :-(

Anyway, to get the cygwin version, download the cygwin installer at http://www.cygwin.com (it's a net installer); I don't remember the exact package which includes expand.exe . Or you can use the version I've attached below.

expand_cygwin.exe

Link to comment
Share on other sites

Guest einpoklum

As the user, you mean? Well, you need to know you need to do that before you can actually do it.

Link to comment
Share on other sites

It is now. 60403c.

Out of curiosity... If any of you would replace expand.exe through HFSLIP (so Windows gets installed with another version), where would you put it? In the FIX folder or in HFEXPERT\APPREPLACEMENT?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...