Commit graph

566 commits

Author SHA1 Message Date
Ken Thomases
ecd53057b5 libwine: On Mac, disable ASLR for Wine processes.
ASLR can allow dyld to be loaded where it overlaps one of the regions that the
preloader would like to reserve.  That, in turn, can prevent Wine from using the
shared user data region.  With ASLR disabled, dyld will be loaded immediately
after the preloader, which has a defined base address.

This uses an Apple extension to posix_spawn() that allows it to replace the
calling process's image, like a more featureful execve().  The flag to disable
ASLR is technically private SPI, but has remained stable for many versions of
the OS.  And the Mac preloader is already stepping over that line.

Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-04 15:39:36 +01:00
Gabriel Ivăncescu
e84c26cec6 libport: Handle partially overlapping buffers.
Cause of bug discovered by Jason Edmeades.

Some applications partially overlap the two buffers, so don't assume they
don't overlap.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=38558
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-24 17:33:38 +01:00
Denil Verghese
86bab890dd libwine: Fix missing semi-colon.
Signed-off-by: Denil Verghese <denilverghese@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-06 17:01:09 +01:00
Alexandre Julliard
05fa21e188 makefiles: Remove some unused variables.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-05 10:47:05 +01:00
Sebastian Lackner
a0ab2a7b0c loader: Implement preloader for macOS.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 11:10:09 +01:00
Michael Müller
9fd13a1a5e libwine: Do not restrict base address of main thread on 64 bit mac os.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-29 10:46:38 +01:00
Alexandre Julliard
493129d638 libwine: Look for the 64-bit wineserver using the 64-bit loader symlink.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-28 13:24:19 +01:00
Alexandre Julliard
27254d849b libwine: Add a helper function to read a symlink.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-28 13:10:15 +01:00
Alexandre Julliard
d84de4ca00 makefiles: Support specifying installed files in the top-level makefile.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-27 14:48:04 +01:00
Jacek Caban
bdea31c177 wpp: Skip parsing #if expression if it's ignored anyway.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 10:21:51 +01:00
Michael Stefaniuc
a0d4401ddc libs/port: Avoid an ARRAY_SIZE-like macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-08 07:59:00 +01:00
Michael Stefaniuc
93acf3a695 libs/wine: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-25 20:37:06 +02:00
Chip Davis
bdca749f7b libwine: Use getsegmentdata(3) on Mac OS to find the end of the __TEXT segment.
Don't assume it ends with the fake PE header. This assumption doesn't
hold on Mac OS: the __data section where it was placed is located after
several other sections, all in the __DATA segment.

Unfortunately, this causes Wine, when DEP/NX is turned off, to override
the page protections for the start of the __DATA segment, removing write
permission from them, leading to a crash when winemac.drv attempted to
use an Objective-C class for the first time.

Also, be sure to include the zero-fill (i.e. BSS) sections in the total
size of the .data section. This should fix some tests that use large
uninitialized arrays.

Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 13:12:38 +02:00
Nikolay Sivov
d4eeb162bb tools: Update to Unicode 11.0.0.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-03 12:01:40 +02:00
Alexandre Julliard
9d36aad457 libport: Add a replacement implementation for strnlen.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-15 11:00:36 +01:00
Alexandre Julliard
ec14c220d2 libwine: Print thread id by default in all traces.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-25 11:43:11 +01:00
André Hentschel
b0fc60d279 libwine: Reserve memory areas for ARM64 in case we don't have a preloader.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-17 10:28:44 +01:00
Alex Henrie
ef104c3a33 libport: Fix typo in rintf.
Spotted by Joris Huizer.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-13 23:02:34 +01:00
Alex Henrie
06d9c7e25e libport: Move rint fallback implementations from msvcrt to libport.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-08 20:39:04 +01:00
Alexandre Julliard
20d13d0b78 libwine: Also apply the load delta to the FirstThunk table.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-18 15:41:43 +02:00
Jens Reyer
b736dbe933 make_unicode: Update data tables to Unicode 10.0.0.
Signed-off-by: Jens Reyer <jre.winesim@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-13 11:44:41 +02:00
Alexandre Julliard
4ee9bbc889 libwine: Fall back to the WINELOADER path for the bin directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-26 13:38:00 +02:00
Alexandre Julliard
56b14d637f libwine: Add a helper function to set the dll directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-26 13:37:25 +02:00
Alexandre Julliard
161f3fc417 libwine: Add a helper function to set the bin directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-26 13:32:38 +02:00
Alexandre Julliard
98860707bc libwine: Handle WINEDEBUGLOG variable on Android to specify a log file.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-30 21:49:49 +02:00
Alexandre Julliard
5142e56aee libwine: Clear the %fs register we got from Android to force allocating a new one.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-21 22:06:52 +02:00
Alexandre Julliard
2b1b7a0a80 libwine: Set a non-null entry for the GDT selector to make sure it's properly reserved.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-21 18:55:17 +02:00
Nikolay Sivov
58e0972c5c Update data tables to Unicode 9.0.0.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-22 22:09:28 +09:00
Akihiro Sagawa
6938fec4ae libport: Fix null character handling when mapping DBCS characters.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-17 16:43:52 +09:00
Alexandre Julliard
877a4a733f libwine: Don't include backwards compatibility functions on Android.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-14 19:28:51 +09:00
Alexandre Julliard
34174e2ca8 libport: Mark internal functions and data tables as hidden.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-25 00:25:00 +09:00
Alexandre Julliard
1a16235de1 libport: Mark codepage tables as hidden.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-25 00:25:00 +09:00
Hugh McMaster
a9fb9ac657 libwine: strtoulW and strtolW should set errno to ERANGE if an overflow will occur.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-23 20:22:21 +09:00
Alexandre Julliard
3602962275 makefiles: Generate dependencies for static libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-23 19:38:37 +09:00
Alexandre Julliard
2afa8f0c4c makefiles: Get rid of libwine_static.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-23 19:38:37 +09:00
Alexandre Julliard
52333e9c5d libwine: Move the wide char to multi-byte conversion functions to libwine_port.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 11:49:48 +09:00
Alexandre Julliard
f7368aaa97 libwine: Move the multi-byte to wide char conversion functions to libwine_port.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 11:48:09 +09:00
Alexandre Julliard
faf3871e77 libwine: Generate the composition tables access code along with the tables.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 11:38:14 +09:00
Alexandre Julliard
a951d53394 libwine: Move the decomposition table to a separate file.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 11:34:02 +09:00
Alexandre Julliard
18699623b3 libwine: Move the CP_SYMBOL conversion functions to libwine_port.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 00:49:10 +09:00
Alexandre Julliard
2087f38e84 libwine: Move the codepage tables to libwine_port.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 00:49:10 +09:00
Alexandre Julliard
fa84ea2555 libwine: Move the wine_fold_string implementation to libwine_port.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 00:49:10 +09:00
Alexandre Julliard
d59d45e457 libwine: Move the digit folding tables to libwine_port.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 00:49:09 +09:00
Charles Davis
b5f210ddc9 libwine: Define some functions only on i386 (Clang).
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-16 23:26:30 +09:00
Dmitry Timoshkov
dfbbd55af7 kernel32: CompareStringW should abort on the first nonmatching character to avoid an invalid memory access.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-12 23:06:55 +09:00
Alexandre Julliard
6203373496 libwine: Map partial DBCS characters to the default char.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-09 13:46:48 +09:00
Alexandre Julliard
dec6a946d3 makefiles: Replace the libwine makefile rules by variable declarations.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-13 22:24:53 +09:00
Alexandre Julliard
1fa7710ff9 makefiles: Get rid of the DLLPREFIX variable.
Android libraries will be handled differently.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-09 12:12:58 +09:00
Alexandre Julliard
90d66cc874 makefiles: Only define the dummy target in makefiles that need it.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-22 21:36:15 +09:00
Alexandre Julliard
d197252fb3 libwine: Pass the correct length to GetStringUTFRegion.
Spotted by Jactry Zeng.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-20 00:30:36 +09:00