[Bug 5348] Adobe Photoshop CS2 install fails.

Wine Bugs wine-bugs at winehq.org
Mon Apr 30 13:35:30 CDT 2007


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





------- Additional Comments From truiken at gmail.com  2007-30-04 13:35 -------
>From bug 5768:

------- Additional Comment #7 From Mike McCormack  2007-01-11 20:30 -------

The "AMT_WriteRemoveFileEntry" action problem is a bug in MsiGetPropertyA that
we don't emulate.

Adobe products use MsiGetPropertyA in custom actions to fetch the value of
various properties like this:

char *get_prop( const char *name )
{
    UINT r;
    DWORD sz;
    char *str;

    /* sz is meant to be the size in TCHARs excluding nul */
    r = MsiGetPropertyA( handle, name, NULL, &sz);
    if (r != ERROR_SUCCESS || sz == 0) return NULL;

    /* sz would be too short here.... */
    str = HeapAlloc(GetProcessHeap(), 0, sz);
    MsiGetPropertyA( handle, name, NULL, &sz);
    if (r != ERROR_SUCCESS || sz == 0) goto error;

    return str;
error:
    /* log a message and fail */
    ...
}

The above code works in the installer, but we have a number of test cases
showing that it shouldn't.

The code is run in the context of a custom action.  After writing a test case
for the above code in a custom action, the problem was apparent. 
MsiGetPropertyA has a bug in this case; it returns the size of the wide string
in bytes.

eg. if the property value is "Photoshop.dll" it returns 26, not 13, so the above
code works.


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the wine-bugs mailing list