[Bug 49834] New: 45a63e5b3ce0e5d7fcc55ce57f315086b87f8ad7 breaks binary compatibility with 5.0 on passing main() argc

WineHQ Bugzilla wine-bugs at winehq.org
Mon Sep 14 02:30:13 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=49834

            Bug ID: 49834
           Summary: 45a63e5b3ce0e5d7fcc55ce57f315086b87f8ad7 breaks binary
                    compatibility with 5.0 on passing main() argc
           Product: Wine
           Version: 5.9
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Keywords: regression, source, testcase
          Severity: normal
          Priority: P2
         Component: ntdll
          Assignee: wine-bugs at winehq.org
          Reporter: dmitry at baikal.ru
                CC: julliard at winehq.org
   Regression SHA1: 45a63e5b3ce0e5d7fcc55ce57f315086b87f8ad7
      Distribution: ---

Created attachment 68172
  --> https://bugs.winehq.org/attachment.cgi?id=68172
test winelib module (source + binary)

I have a private winelib module compiled with stable wine-5.0.2 branch.
Recently this module was broken after upgrading Wine.

I've attached test with source and pre-compiled binary using wine-5.0.2.

When running with wine-5.0.2 it looks like this:

$ wine test.exe.so 
Starting (argc = 1, argv = 0x113120)...
Done.

$ wine test.exe.so -v
Starting (argc = 2, argv = 0x1132e8)...
verbose is on
Done.

When running with wine-5.17 argc passed to main() is no longer valid,
which makes the app try to parse not existing command like arguments:

$ wine test.exe.so -v
Starting (argc = 3, argv = 0x143a10)...
verbose is on
Done.

$ wine test.exe.so
Starting (argc = 2, argv = 0x110f48)...
wine: Unhandled page fault on read access to 00000000 at address 7ECF30AF
(thread 0024), starting debugger...
couldn't load main module (2)
Unhandled exception: page fault on read access to 0x00000000 in 32-bit code
(0x7ecf30af).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:7ecf30af ESP:0031fed0 EBP:0031fee8 EFLAGS:00010202(  R- --  I   - - - )
 EAX:00000000 EBX:7ecf6000 ECX:00000028 EDX:f7ee5890
 ESI:00000002 EDI:00110f48
Stack dump:
0x0031fed0:  00110f50 00110f48 0031ff00 00000002
0x0031fee0:  00110f48 00110f48 0031ff38 7ecf333b
0x0031fef0:  00000000 00000000 00110f4c 7ecf333b
0x0031ff00:  00000002 00110f48 00000000 00000000
0x0031ff10:  00000000 7dd4abb0 0000000d 00110f48
0x0031ff20:  00000000 00000000 0031ff48 7ffde000
Backtrace:
=>0 0x7ecf30af (0x0031fee8)
  1 0x7ecf333b (0x0031ff38)
  2 0x7b655a70 in kernel32 (+0x35a6f) (0x0031ff58)
  3 0x7bc7cfd7 (0x0031ff6c)
  4 0x7bc7d22a (0x0031ffec)
0x7ecf30af: cmpb    $0x2d,0x0(%eax)
Modules:
Module    Address            Debug info    Name (3 modules)
PE    7b020000-7b027000    Deferred        kernelbase
PE    7b620000-7b7dc000    Export          kernel32
PE    7bc20000-7bc24000    Deferred        ntdll

The regression is cased by

45a63e5b3ce0e5d7fcc55ce57f315086b87f8ad7 is the first bad commit
commit 45a63e5b3ce0e5d7fcc55ce57f315086b87f8ad7
Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sun May 17 11:44:16 2020 +0200

    ntdll: Store main() arguments in the Unix library.

    Signed-off-by: Alexandre Julliard <julliard at winehq.org>

First Wine version released with this commit is wine-5.9.

-- 
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