Ken Thomases
a73045d6a0
kernel32: Overhaul the handling of argv in set_process_name().
...
This fixes several problems with the code:
* The code had been assuming that the argument strings pointed to by the argv
array are contiguous iff certain process-name-setting functions are available.
This doesn't seem reliable. Instead, test if it's true and shift the strings
if so.
However, setproctitle() is specifically documented as a preferred alternative
to the technique of overwriting the arg strings, so don't shift the strings
if that's available.
* Use the last path component, recognizing backslash as a path separator, for
setprogname() in addition to prctl(). First, setprogname() is documented as
searching for the last component itself, but it doesn't understand Windows-
style paths, so we need to help it. Second, on some platforms (e.g. macOS),
setprogname(), like prctl(), has a fairly small internal length limit (e.g.
32 characters). So, concentrate on the most meaningful part of the path.
* Remove argv[0] from argv whether or not there are any process-name-setting
functions available. This is necessary for the proper functioning of Wine,
so it must be done on all platforms. This part of the logic was lost with
commit 5a4576ee0
.
* Call all available process-name-setting functions instead of treating them
as mutually exclusive alternatives. This is also logic that was lost with
commit 5a4576ee0
.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 11:16:11 +09:00
Charles Davis
5a4576ee09
kernel32: Use setprogname(3) to set the program name if available.
...
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-22 17:37:10 +09:00
Sebastian Lackner
4ac066cdaa
kernel32: Do not inherit QT_* environment variables to Windows environment.
...
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-16 13:34:35 +09:00
Andrew Eikum
a124064ce5
ntdll: Implement SystemLogicalProcessorInformationEx.
...
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-29 00:49:31 +09:00
Nikolay Sivov
ae1fe69e39
kernel32: Forward GetLogicalProcessorInformationEx() to ntdll.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-05 15:08:29 +01:00
Jacek Caban
6a7363b694
kernel32: Call registry functions with full key path.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-19 23:56:39 +09:00
Jacek Caban
1130a11cce
kernel32: Added DECLSPEC_HOTPATCHABLE to WinExec function.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-13 11:53:04 +09:00
Jacek Caban
ebb320fa37
kernel32: Improved WTSGetActiveConsoleSessionId stub.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-08 21:32:49 +09:00
Jacek Caban
888d1c67bb
kernel32: Use session id stored in PEB in ProcessIdToSessionId.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-08 21:32:43 +09:00
Qian Hong
34c7a72d14
kernel32: Fix GetComputerName buffer overflow.
2015-07-22 07:27:00 +02:00
Michael Müller
d0ae2b0d3d
kernel32: Implement GetNumaProcessorNode.
2015-06-29 19:07:51 +09:00
Sebastian Lackner
5bab75166c
kernel32: Fix leak of dynamic_buffer in QueryFullProcessImageNameW (Coverity).
2015-03-17 14:52:08 +09:00
Sebastian Lackner
d48e3a0bea
kernel32: Fix file handle leak in exec_process (Coverity).
2015-03-17 14:52:08 +09:00
Austin English
fa80425242
kernel32: Add GetSystemFirmwareTable stub.
2015-01-26 12:06:04 +01:00
Hans Leidekker
b51476ad42
kernel32: Retrieve the system affinity mask from ntdll.
2015-01-21 15:30:37 +01:00
Qian Hong
bfd088dbc6
kernel32: Fixed buffer size on 64bit in IsWow64Process.
2015-01-16 20:15:32 +01:00
André Hentschel
e404d7fea3
kernel32: Set COMPUTERNAME environment variable.
2014-10-28 14:04:54 +09:00
Sebastian Lackner
d74c9e3ec2
kernel32: Implement GetProcessDEPPolicy.
2014-10-21 18:51:19 +09:00
Alexandre Julliard
ea1689e7b0
kernel32: Add detection of fake dlls when determining a binary type.
2014-08-22 12:44:24 +02:00
Austin English
fd6c5490df
kernel32: Add a stub for UnregisterApplicationRestart.
2014-06-18 16:31:14 +02:00
Alexandre Julliard
598c5816d9
kernel32: Don't allocate FLS index 0.
2014-03-28 17:46:03 +01:00
Austin English
77bd74fa25
kernel32: Improve GetNumaHighestNodeNumber stub.
2014-03-18 19:05:33 +01:00
Alexandre Julliard
7066ce0b1e
kernel32: Set correct binary type for COM and PIF files.
2014-02-12 19:15:11 +01:00
André Hentschel
8439cc9da4
kernel32: Use boolean return values in boolean functions.
2014-01-30 14:51:37 +01:00
Austin English
ea765ae005
kernel32: Quiet a noisy FIXME.
2014-01-29 14:58:35 +01:00
Alexandre Julliard
1e78c99388
kernel32: Validate the architecture of newly created processes on the server side.
2013-11-22 12:32:48 +01:00
Alexandre Julliard
f2c54dba01
kernel32: Determine the module architecture for all binary types.
2013-11-22 12:25:30 +01:00
Frédéric Delanoy
baf491b80b
kernel32: Use BOOL type where appropriate.
2013-10-03 12:54:37 +02:00
Frédéric Delanoy
6918c86544
kernel32: Use BOOL type where appropriate.
2013-09-26 21:34:13 +02:00
Alexandre Julliard
3799d55d9b
ntdll: Implement RtlExitUserProcess.
2013-07-19 12:15:15 +02:00
Alexandre Julliard
c01574d426
kernel32: Acquire the loader lock before shutting down the process.
2013-07-08 15:15:43 +02:00
Dmitry Timoshkov
bfcdf6df8e
kernel32: Terminate threads before unloading DLLs on process exit.
2013-05-17 12:29:41 +02:00
Dmitry Timoshkov
77f222505c
kernel32: Hold PEB lock during process exit.
2013-05-07 11:26:02 +02:00
Dmitry Timoshkov
37f7e7ea0c
kernel32: TerminateProcess unlike NtTerminateProcess is supposed to fail with process == 0.
2013-04-12 11:49:17 +02:00
Alexandre Julliard
9181b7e876
kernel32: Fetch the system information only once the memory limits are correct.
2013-04-04 13:28:45 +02:00
Alexandre Julliard
62f22dd4e3
kernel32: Retrieve the system info from ntdll on startup.
2013-01-09 12:15:22 +01:00
Maarten Lankhorst
7457f37e4a
ntdll: Set SO_PASSCRED before connecting to eliminate a race condition in obtaining server_pid.
2012-10-18 19:31:15 +02:00
Piotr Caban
c6ac0d0fcc
kernel32: Added GetLogicalProcessorInformation implementation.
2012-09-04 16:15:56 +02:00
Austin English
b4432a6274
kernel32: Only print a fixme once for FlushProcessWriteBuffers.
2012-05-03 11:51:38 +02:00
Austin English
80ef24b057
kernel32: Add a stub for FlushProcessWriteBuffers.
2012-05-02 20:11:54 +02:00
Alexandre Julliard
e31dd6dba1
kernel32: Only change the Unix current after exec_process to make sure it's inherited properly.
2012-01-31 13:44:40 +01:00
Alexandre Julliard
fe7652d0af
kernel32: Don't run a nonexistent builtin from CreateProcess when filename is not specified.
2011-12-14 19:35:10 +01:00
Ken Thomases
5bac5ee26e
kernel32: Use double-fork to avoid leaving zombie processes.
2011-12-01 10:27:38 +01:00
Ken Thomases
f658feb70f
kernel32: No need to reset SIGCHLD because we're not changing it anymore.
2011-12-01 10:11:06 +01:00
Alex Henrie
3aff781f63
kernel32: Output message to stderr in current Unix codepage.
...
Fixes a bug in which the command "wine /." outputs a garbled error message in languages other than English.
Supersedes "kernel32: Output message to stderr in UTF-8"
2011-10-26 12:41:34 +02:00
Marcus Meissner
615e9572f1
kernel32: Avoid shadowing variables "a", "nt" and "fd".
2011-10-24 12:34:52 +02:00
Austin English
d4ec0a19c0
kernel32: Add a stub for GetProcessDEPPolicy.
2011-10-20 11:06:22 +02:00
Francois Gouget
a2af890483
kernel32: Fix the NT path returned by QueryFullProcessImageName().
2011-10-04 15:23:03 -05:00
Alexandre Julliard
3e4a9cb4d4
kernel32: Include system headers before Windows headers.
2011-09-06 13:25:50 +02:00
Francois Gouget
3b239dbc62
kernel32: Implement K32GetProcessImageFileNameA().
2011-08-05 15:22:47 +02:00