Commit graph

60 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto
d86301f72b
[NTDLL:CSR] Perform more thorough validation of the parameters in CsrAllocateCaptureBuffer().
Complements commit 7e2db773.

- Validate the argument count.

- Validate the total buffer size: the total size of the header plus
  the pointer-offset array and the provided buffer, together with
  the alignment padding for each argument, must be less than MAXLONG
  aligned to 4-byte boundary.
2020-10-05 02:22:45 +02:00
Hermès Bélusca-Maïto
b3fa53f818
[NTDLL:CSR] Fix a bug in the calculation of the capture buffer size in CsrAllocateCaptureBuffer().
Take the alignment padding for each argument into account, **BEFORE**
doing the final size alignment on a 4-byte boundary. Thus, the capture
buffer size value is properly aligned, and passes the validation tests
on the server side (in CSRSRV!CsrCaptureArguments), see commit 7e2db773.

This bug was put in evidence in x64 builds where the memory alignments
were more tight than in the x86 builds.
2020-10-05 02:22:43 +02:00
Thomas Faber
1c404d838a
[NTDLL:LDR] Fail if section creation fails in LdrpCreateDllSection. CORE-17284
Otherwise we'd call ZwQuerySection on an invalid handle and get:
(ntoskrnl/mm/section.c:4320) Failed to reference section: 0xc0000008

Also correctly check DllCharacteristics: If the argument is missing, the
file is _not_ a system file, i.e. we should check for restrictions.
2020-10-03 13:10:09 +02:00
William Kent
427ea67b9c
[RTL] Add code to SxS manifest parser to parse XML namespaces (#2512)
* [XDK] Typo fix
* [XDK] Add missing ACTIVATION_CONTEXT_SECTION values
* [RTL] Merge changes from Wine
* [ROSTESTS] Fix typo
* [NTDLL] Typo fix
* Add test for new functionality
* [ROSTESTS] Fix path
* [ROSTESTS] Add test to testlist.c
2020-09-20 22:56:42 +02:00
Serge Gautherie
889b077b23
[REACTOS] *.spec: Fix some function/parameter types (#3154) 2020-09-20 19:21:11 +02:00
Timo Kreuzer
61192390cf
[KERNEL32_VISTA][NTDLL_VISTA][RTL_VISTA] Move Vista Rtl functions from kernel32_vista and ntdll_vista to rtl_vista (#3149)
* Move RtlRunOnce functions from kernel32_vista to rtl_vista and export them from ntdll_vista
* Move condvar.c and srw.c from ntdll_vista to rtl_vista
* Move ntdll_vista build script to a subfolder of ntdll

The RtlRunOnce functions are taken from wine, completely unmodified.
The code that was in kernel32_vista had change that used a global keyed_event handle, but was never initialized, so we were still passing NULL thus using the global ExpCritSecOutOfMemoryEvent.
2020-09-12 15:04:02 +02:00
Timo Kreuzer
92f4746845 [NTDLL] Add Vista exports 2020-09-09 19:33:29 +02:00
Timo Kreuzer
aaa7dda945 [NTDLL] Mark 2k3 only functions and improve some arch specific definitions 2020-09-09 19:33:29 +02:00
Amine Khaldi
139a3d6661
[CMAKE] Implement PCH builds with target_precompile_headers. CORE-16905 2020-06-06 21:58:41 +03:00
Timo Kreuzer
cb99761bc1 [NTDLL] Use lowest OS version GUID in the application manifest, instead of highest 2020-05-31 13:14:01 +02:00
Timo Kreuzer
f323778b0b [NTDLL] Rename ExportEntry to ExportDirectory to better represent what it is 2020-05-23 17:30:52 +02:00
Katayama Hirofumi MZ
612729b092
[SYSSETUP][BOOTDATA] Make Server default again and write Service Pack (#2749)
- Make "ReactOS Server" the default product option again instead of "ReactOS Workstation".
- Write "Service Pack" info onto registry.
- Add ProductOption option to bootcd unattend.inf.
- Delete IDC_PRODUCT_SUITE and IDC_PRODUCT_TYPE controls.
CORE-17028
2020-05-19 15:41:26 +09:00
Mark Jansen
d5f0b2b160
[RTL] Implement LdrpRecordUnloadEvent 2020-04-26 14:35:51 +02:00
Serge Gautherie
f44cb6de96
[NDK][NTDLL] RtlGetNtProductType(): Update it with SAL2 annotations 2020-04-26 14:08:58 +02:00
Mark Jansen
1e0f359fa7
[LDR] Add initial LOAD_CONFIG support 2020-04-17 17:47:24 +02:00
Mark Jansen
177ae91bf6
[RTL] Introduce RtlpImageNtHeader,
which implements the required functionality.
ntdll and ntoskrnl now have a wrapper for this, with SEH.
This protects the function against malformed / bad images,
whilst still being able to use the code in freeldr et al.
Idea from Thomas.
CORE-14857
2020-03-29 21:27:38 +02:00
Mark Jansen
2801a8272d
[LDR] Include source dll in static snap failure dprint 2020-03-29 21:02:31 +02:00
Oleg Dubinskiy
6f232770d3
[NDK][RTL] Implement RtlGetUnloadEventTrace. CORE-16671 2020-02-09 08:37:58 +01:00
Mark Jansen
8381e29467
[NTDLL] Add policy kill-switch for manifest based automatic shimming
CORE-16631
2020-01-25 13:23:54 +01:00
Timo Kreuzer
ff29d18002 [NTDLL] Architecture specific spec file improvements 2020-01-03 13:00:45 +01:00
Timo Kreuzer
e92f96bd38 [NTDLL] Remove redundant Zw* -> Nt* forwarders 2020-01-03 13:00:45 +01:00
Timo Kreuzer
2ae394e474 [NTDLL] Add some more stub exports 2020-01-03 13:00:45 +01:00
Timo Kreuzer
5fa4fd7bef [RTL][NTDLL] Add some function stubs
- LdrSetAppCompatDllRedirectionCallback
- RtlCancelTimer
- RtlCreateServiceSid
- RtlQueryProcessHeapInformation
- RtlQueueApcWow64Thread
- RtlSetTimer
- RtlUnhandledExceptionFilter2
- RtlpNotOwnerCriticalSection
2020-01-03 13:00:45 +01:00
Timo Kreuzer
150353ebf3 [NTDLL] Export some more existing functions 2020-01-03 13:00:45 +01:00
Timo Kreuzer
d1c55af4ea [NTDLL] Ordinals -> @ 2020-01-03 13:00:45 +01:00
Thomas Faber
8d3f52a2ca
[NTDLL:LDR] Add a print on illegal DLL relocation. 2019-12-27 17:02:26 +01:00
Mark Jansen
029b8f2cf9
[NTDLL] Use the embedded manifest from the process to check compatibility. 2019-08-21 18:57:52 +02:00
Mark Jansen
419d7e96ad
[NTDLL][ARM] Export pow 2019-08-20 22:31:55 +02:00
Mark Jansen
343442cc3f
[LDR][APPHELP] Add a shim that disables manifest compatibility version parsing 2019-08-19 12:08:06 +02:00
Timo Kreuzer
7611cc2b12 [REACTOS] Fix SIZE_T related warnings 2019-08-15 14:20:00 +02:00
Hervé Poussineau
74be88ac47 [LDR] Silence some debug logs when images overlap 2019-05-27 13:24:28 +02:00
Jérôme Gardou
23373acbb9 [CMAKE] Use modules instead of shared libraries
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.

On my system, this reduces the configure-time by a factor of two.
2019-04-06 17:43:38 +02:00
Mark Jansen
a1f6a6bdc3
[LDR] Do not call module entrypoints while loading the shim engine.
Manually call the shim engine entrypoint
CORE-15846
2019-03-14 20:02:01 +01:00
Mark Jansen
27cc4c6a08
[LDR] Check forwarded imports against the manifest before trying to load them
CORE-15729
2019-02-08 21:24:01 +01:00
Mark Jansen
d93e516747
[LDR] Add support for .local files
CORE-187
2019-02-07 18:48:49 +01:00
Mark Jansen
6d89d19f39
[LDR] Ensure we start with a valid pointer 2019-01-03 22:52:18 +01:00
Mark Jansen
aa912422e5
[LDR] Actually allocate what is asked for 2019-01-03 22:52:18 +01:00
Mark Jansen
3e9cf62470
[LDR] Don't dereference a possible nullptr on a malformed forwarded import 2019-01-03 22:52:18 +01:00
Mark Jansen
97d0595bf6
[LDR] Don't dereference a possible nullptr 2019-01-03 22:52:06 +01:00
Mark Jansen
04ff7481b1
[LDR] Introduce a private heap for the loader.
This ensures we can still do stuff when the process heap is corrupted.
2019-01-01 16:20:13 +01:00
Thomas Faber
0013b0f71c
[NTDLL:LDR] Avoid passing an uninitialized variable to another function. 2018-12-28 13:41:09 +01:00
Pierre Schweitzer
de7c959c4e
[NTDLL] Implement the Etw*Trace functions relying on EtwControlTrace 2018-12-09 10:29:02 +01:00
Mark Jansen
1a9b50690a
[LDR] Include dllname in snap failure DPRINT.
CORE-15135
2018-10-03 19:34:14 +02:00
Mark Jansen
06eb99edef
[NTDLL][KERNEL32] Implement FLS callbacks. 2018-09-15 17:56:03 +02:00
Mark Jansen
191dceb034
[LDR] Load kernel32 in LdrpInitializeProcess.
This allows kernel32 to register itself for manifest probing when loading dlls
CORE-9219
2018-08-27 20:05:00 +02:00
Mark Jansen
ad08c6631b
[LDR] Guard some sections where we grab a lock.
CORE-14532
2018-08-13 13:24:12 +02:00
Mark Jansen
55053f0099
[LDR] Add debug logging when we encountered an exception in dll/tls callbacks.
CORE-14532
2018-08-13 13:24:12 +02:00
Mark Jansen
dfff8ed0d8
[LDR] Protect calls from LdrpCallInitRoutine and LdrpCallTlsInitializers with SEH.
CORE-14532
2018-08-13 13:24:00 +02:00
Timo Kreuzer
0f8439aa71 [DLLS] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
Mark Jansen
9c48edb58c
[LDR] Release the loader lock the same way it was acquired 2018-07-22 17:17:36 +02:00