http://bugs.winehq.org/show_bug.cgi?id=35623
Bug ID: 35623 Summary: GetFileVersionInfoA / VerQueryValueA do not work properly under Wine, preventing verification of library versions Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: blocker Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: iwbb.bin+winehq@gmail.com Classification: Unclassified
Created attachment 47573 --> http://bugs.winehq.org/attachment.cgi?id=47573 Version Check python implementation
I am trying to load the Sophos AV library which loads two other libraries when it loads. The first library verifies its version against the version of the other libraries by making a call to VerQueryValue. In order to reproduce the issue, I set up a Python script to make the same calls (see attached). Simply import this module and attempt to get the version information from Sophos DLLs (veex.dll or osdp.dll). GetFileVersionInfo works as expected and returns the same data for both Windows and Wine. However, the VerQueryValue call returns different addresses and lengths, along with no value under Wine while Windows returns a value. Note the last three lines of the output here differ, while the rest of the output is the same:
Under Wine: Creating Savi COM instance... Savi::Initialise((<__main__.Savi object at 0x007D3A90>,), {}) Getting savi.dll version... GetInterfaceVersion(veex.dll) version_size = 2548 version_info = 0xf80434000000560053005f00560045005200530049004f004e005f0049004e0046004f0000000000bd04effe00000100320003006608030032000300660803003f00000001000000040004000100000000000000000000000000000004040000010053007400720069006e006700460069006c00650049006e0066006f000000e003000001003000380030003900300034004200300000003e000f00010043006f006d00700061006e0079004e0061006d0065000000000053006f00700068006f00730020004c0069006d00690074006500640000000000760027000100460069006c0065004400650073006300720069007000740069006f006e000000000053006f00700068006f007300200041006e00740069002d0056006900720075007300200064006500740065006300740069006f006e00200065006e00670069006e006500200044004c004c000000000038000c000100460069006c006500560065007200730069006f006e000000000033002e00350030002e0033002e00320031003500300000002a000500010049006e007400650072006e0061006c004e0061006d00650000005600450045005800000000007a002b0001004c006500670061006c0043006f0070007900720069006700680074000000a900200031003900380039002d003200300031003400200053006f00700068006f00730020004c0069006d0069007400650064002c0020007700770077002e0073006f00700068006f0073002e0063006f006d0000000000ae00430001004c006500670061006c00540072006100640065006d00610072006b0073000000000053005700450045005000ae002c00200049006e0074006500720043006800650063006b00ae002c00200061006e00640020005300410056006900ae002c0020006100720065002000740072006100640065006d00610072006b00730020006f006600200053006f00700068006f007300ae0020004c0069006d0069007400650064002e00000000003a00090001004f0072006900670069006e0061006c00460069006c0065006e0061006d006500000056004500450058002e0044004c004c0000000000440012000100500072006f0064007500630074004e0061006d0065000000000053006f00700068006f007300200041006e00740069002d00560069007200750073000000560019000100500072006f006400750063007400560065007200730069006f006e00000033002e00350030002e003300200028004200750069006c006400200032003100350030002900200042006500740061000000000024000000010058002d00540065007800740045007800740072006100630074000000000018000000010058002d00440065006200750067000000000036000d00010058002d0043006f006d00700069006c006500720000005600430039002000280056005300320030003000380029000000000034000c00010058002d0050006c006100740066006f0072006d000000570069006e00330032002000280078003800360029000000440000000100560061007200460069006c00650049006e0066006f00000000002400040000005400720061006e0073006c006100740069006f006e00000000000908b00454000000010053006f00700068006f007300460069006c00650049006e0066006f00000030000400000049006e0074006500720066006100630065002000560065007200730069006f006e00000000000300320046453258000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 buf = 0x35383334353630 buf = 5834560L buflen = 0 value =
On Windows: Getting savi.dll version... GetInterfaceVersion(veex.dll) version_size = 2548 version_info = 0xf80434000000560053005f00560045005200530049004f004e005f0049004e0046004f0000000000bd04effe00000100320003006608030032000300660803003f00000001000000040004000100000000000000000000000000000004040000010053007400720069006e006700460069006c00650049006e0066006f000000e003000001003000380030003900300034004200300000003e000f00010043006f006d00700061006e0079004e0061006d0065000000000053006f00700068006f00730020004c0069006d00690074006500640000000000760027000100460069006c0065004400650073006300720069007000740069006f006e000000000053006f00700068006f007300200041006e00740069002d0056006900720075007300200064006500740065006300740069006f006e00200065006e00670069006e006500200044004c004c000000000038000c000100460069006c006500560065007200730069006f006e000000000033002e00350030002e0033002e00320031003500300000002a000500010049006e007400650072006e0061006c004e0061006d00650000005600450045005800000000007a002b0001004c006500670061006c0043006f0070007900720069006700680074000000a900200031003900380039002d003200300031003400200053006f00700068006f00730020004c0069006d0069007400650064002c0020007700770077002e0073006f00700068006f0073002e0063006f006d0000000000ae00430001004c006500670061006c00540072006100640065006d00610072006b0073000000000053005700450045005000ae002c00200049006e0074006500720043006800650063006b00ae002c00200061006e00640020005300410056006900ae002c0020006100720065002000740072006100640065006d00610072006b00730020006f006600200053006f00700068006f007300ae0020004c0069006d0069007400650064002e00000000003a00090001004f0072006900670069006e0061006c00460069006c0065006e0061006d006500000056004500450058002e0044004c004c0000000000440012000100500072006f0064007500630074004e0061006d0065000000000053006f00700068006f007300200041006e00740069002d00560069007200750073000000560019000100500072006f006400750063007400560065007200730069006f006e00000033002e00350030002e003300200028004200750069006c006400200032003100350030002900200042006500740061000000000024000000010058002d00540065007800740045007800740072006100630074000000000018000000010058002d00440065006200750067000000000036000d00010058002d0043006f006d00700069006c006500720000005600430039002000280056005300320030003000380029000000000034000c00010058002d0050006c006100740066006f0072006d000000570069006e00330032002000280078003800360029000000440000000100560061007200460069006c00650049006e0066006f00000000002400040000005400720061006e0073006c006100740069006f006e00000000000908b00454000000010053006f00700068006f007300460069006c00650049006e0066006f00000030000400000049006e0074006500720066006100630065002000560065007200730069006f006e00000000000300320046453258000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 buf = 0x3334323935333634 buflen = 4 value = 03003200