[Bug 25186] New: Tom Clancy's Splinter Cell installer locks up

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Nov 15 19:34:22 CST 2010


http://bugs.winehq.org/show_bug.cgi?id=25186

           Summary: Tom Clancy's Splinter Cell installer locks up
           Product: Wine
           Version: 1.3.7
          Platform: x86
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: shell32
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: pp at siedziba.pl


Splinter Cell installer enters infinite loop before it installs any files.
Regression test finds this commit as the culprit:

f324f3c31ef4b0a6b5273aca534c173d68932462 is the first bad commit
commit f324f3c31ef4b0a6b5273aca534c173d68932462
Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Thu Nov 11 15:58:12 2010 -0600

    shell32: Don't fail if the path doesn't exist in Unix in
IShellFolder::ParseDisplayName.

:040000 040000 319f1430fd21651467b6d173c38aa9b2ae2f25ca
97d7adfd2c2ad0c7b00aefed240ddf18a9899875 M    dlls

Debugging the issue further, the patch introduces this loop:

1.    while(!(pszUnixPath = wine_get_unix_file_name(dospath))){
2.        if(has_failed)
3.            *dospath_end = '/';
4.        else
5.            has_failed = 1;
6.        while(*dospath_end != '\\' && *dospath_end != '/')
7.            --dospath_end;
8.        *dospath_end = '\0';
9.    }

When I print the dospath variable between lines 1 and 2, the output is:

C:\Program Files\Ubi Soft Entertainment\Tom Clancy's Splinter Cell
Demo\Support\Readme.txt
C:\Program Files\Ubi Soft Entertainment\Tom Clancy's Splinter Cell Demo\Support
C:\Program Files\Ubi Soft Entertainment\Tom Clancy's Splinter Cell Demo\Support
C:\Program Files\Ubi Soft Entertainment\Tom Clancy's Splinter Cell Demo\Support
[...]

... and it repeats ad infinitum.

The problem is, the inner while loop at line 6 immediately finds the '/' char
written earlier at line 3, so dospath_end variable isn't decremented, and it
loops forever.

I don't know what this piece of code is supposed to do, so I have no idea what
is the correct way to fix it.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list