is a small optimization picked from 0.4.14-dev-108-g 1bf982ff88
otm is checked for NULL already a few lines before in that function, and is not touched
anymore in between the two locations. Tiny bit shorter+smaller now,
and might satisfy also some static code-analysis.
The origin of checking it twice for NULL dates back into the pre-0.4.7-era of ros.
This avoids spamming "Syntax Errors" to the cmd-prompt when starting the VS2010 command prompt.
Or when typing something like "@Rem Hello" at the prompt.
Fix picked from 0.4.15-dev-202-g 9c11be5a3a
It fixes Heap Corruption when starting KernRate, which I could confirm also in
all the older ros branches by using:
gflags /p /enable Kernrate_i386_XP.exe /full
Kernrate_i386_XP.exe
The older builds did not expose the user-visible symptom of "the app crashing" yet
(due to different memory layout),
but the heap corruption was already happening in all of them.
This is a squashed backport of:
0.4.14-RC-92-g d3e301e28b (the actual fix)
0.4.14-RC-93-g 651a011548 (fix for compiling on GCC RosBE *Lin* 2.1.2 carrier-releaser)
0.4.14-release-24-g 57efac32b1 (just a whitespace addendum,
that part you cannot see in the commits to releases/0.4.7 and releases/0.4.8
as that whitespace glitch was not present in them yet)
The log-spam was triggered at end of 2nd stage and within some games.
fix picked from commit 0.4.15-dev-655-g ba006b3d49
and "fix a trace" was picked from 0.4.8-dev-182-g 640af3f429
Otherwise fall back to the computed argv[0].
This is expected by some applications, for example Git.
Code is adapted from Wine.
Many thanks to Stanislav Motylkov for having investigated this bug!
fixes CORE-12931 and all its duplicates: CORE-13892 CORE-13898 CORE-14066
Fix picked from 0.4.10-dev-201-g f215f394d8
CDefaultContextMenu: Set the site for context menu extensions
CNewMenu: Get SID_IFolderView service of the site to get the IShellView
Fix picked from 0.4.8-dev-1077-g 67f99833cd
CDefView: Make GetItemObject return an IContectMenu after setting itself as the site.
CDefViewBckgrndMenu: Make the inner context menu use the same site. Implement handling CMDSTR_VIEWLISTA and CMDSTR_VIEWDETAILSA.
CDefaultContextMenu: CMDSTR_VIEWLISTA and CMDSTR_VIEWDETAILSA shouldn't be handled in this class.
Fixes CORE-14327 and the two buttons that change the view mode
Fix picked from 0.4.8-dev-1076-g b97886ea9f
It shouldn't be necessary for QueryContextMenu to be called before InvokeCommand.
Move retrieving the IContextMenu of the folder to the initialization of the class.
Fix picked from 0.4.8-dev-1074-g 111c40e012
In spite of what was implemented in our NT DDK sample, this is a legit operation.
This may have been turned legit starting NT5 (reminder, our implementation is
NT4 based...). So, in this situation, just return the information about the whole
disk (and not a random size) and also, mark everything with default values.
See disk_new for an example of how it works in NT5+.
Fix picked from 0.4.8-dev-507-g b9b461bde9
And it was for master linked against CORE-14124 although it was not directly
related to that regression.
My motivation to port back that commit of Pierre on its own is, that it kills a lot of
logspam of the kind:
(../drivers/storage/class/disk/disk.c:2257) HACK: Handling partition 0 request!
multiple times each boot.
This syncs the whole disk module 100% to the state of 0.4.8 and that state
remained quite settled for the years to come afterwards.
On testbots for test "msxml3 : httpreq" we could observe with DPH enabled:
*** Assertion failed: LastEntry->Size != 0
*** Source File: /srv/buildbot/Build_GCCLin_x86/build/sdk/lib/rtl/heap.c, line 675
Fix picked from 0.4.9-dev-756-g 708d26acf3
The fix was also sent to Wine:
a64403904d
Just adds a missing module without touching the rest, because releases/0.4.7
is not plagued by any frequent relocations at runtime.
The minor update will just fix the following warning at compile-time for GCC:
-- notifyhook has no base address
The list of addresses we used in 0.4.7 is still hand-groomed, and was not
generated by the script yet.
This is a *partial* back-port of 0.4.10-dev-279-g 75dc031080
And a plain revert of the guilty SVN r73486 == git a35a785b11
It will fix the following regression symptoms:
- CORE-12614 empty "documents and settings" folder created when using non-english localization
- CORE-12613 we will save 1012KB of memory (commit charge in taskmgr), by shrinking the registry a bit
- CORE-18416 RaceCondition, sometimes the network icon in systray does not appear in late 0.4.9-dev and releases/0.4.9.
Ftr I could not trigger CORE-18416 in practice in unpatched releases/0.4.7 and releases/0.4.8 unless I intentionally
changed the timing during bootup. Still I want to pick it also in those, to not make it later popup unexpectedly.
For the record: I decided to pick only part of the fix from master and not all, because the proper fix
would rely on a lot of things to pick additionally from 0.4.10-dev' and even 0.4.11-dev'.
The consequences of only partially picking is that we cannot complete the setup of Office 2010 with its
copyprotection-driver anymore, which relies on being able to load its service with the proper account and user profile,
and not with the fallback we used in older reactos releases. If you need that feature, please use releases/0.4.11 or higher,
because even 0.4.10 is not handling this properly yet.
The conservative approach of 'not having the hack, and sticking to just one profile' is better for the older releases overall.
That problem in the shell was unhidden when we switched from our own to the MS-PL CDFS-driver
in 0.4.7-release-113-g 688875e411
because our own old CDFS driver erroneously never reported any CD file being read-only.
Fix picked from 0.4.15-dev-4348-g 513d0a6d2d
While backporting the fix, I decided to port back also some EOL-whitespace-stripping in that file.
which I could observe all the way from releases/0.4.7 up to releases/0.4.14
with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuration
Creating library dll\win32\winhttp\winhttp.lib and object dll\win32\winhttp\winhttp.exp
LINK : warning LNK4199: /DELAYLOAD:ole32.dll ignored; no imports found from ole32.dll
Fix picked from 0.4.15-dev-4326-g 2f7dc168f2
And just for the record: Wine did the same with their:
f400f25c25
warnings can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuration:
[7441/11751] Building C object sdk\tools\wpp\CMakeFiles\wpp.dir\ppl.yy.c.obj
[7442/11751] Building C object sdk\tools\wpp\CMakeFiles\wpp.dir\ppy.tab.c.obj
ppy.y(402) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
ppy.y(402) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
ppy.y(402) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
partial pick from: 0.4.13-dev-132-g f47f45dbdd
Yes the /wd4244 wasn't really necessary for x86, but only for x64,
but taking it with me as well synced the file to 100%.
warnings can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuration:
[10138/11748] Linking C shared library dll\win32\setupapi\setupapi.dll
Creating library dll\win32\setupapi\setupapi.lib and object dll\win32\setupapi\setupapi.exp
LINK : warning LNK4199: /DELAYLOAD:winspool.dll ignored; no imports found from winspool.dll
[10209/11748] Linking CXX shared library dll\win32\shell32\shell32.dll
Creating library dll\win32\shell32\shell32.lib and object dll\win32\shell32\shell32.exp
LINK : warning LNK4199: /DELAYLOAD:winspool.dll ignored; no imports found from winspool.dll
fix picked from: 0.4.8-dev-594-g b20280a0f9
aka: [CMAKE] Allow overriding the .dll extension for delay imports in MSVC builds.
pick part of 0.4.10-dev-312-g a3ddb8a4c2 to harmonize the
inconsistency in the base-address-files regarding winspool.
Since an ancient winspool-name-change
the baseaddress*.cmake files do reference the winspool module in an inconsistent style:
- 'baseaddress_winspool' in baseaddress.cmake 'was already' / 'is still' ok without
the 'drv' in the older branches (unlike 0.4.10-dev-311)
- 'baseaddress_winspool.drv' in baseaddress_dwarf.cmake
- 'baseaddress_winspool.drv' in baseaddress_msvc.cmake
And therefore only GCC did properly set a base address, but MSVC failed at that.
No warnings afterwards anymore about 'winspool has no base address' during configure.
by always unconditionally enabling "String Pooling" /GF
Pros:
- consistency between the toolchains, as GCC always has this enabled
- shrinks the binary sizes for MSVC dbg builds
- smaller binaries will also make relocations less probable with MSVC dbg and a given set of (often outdated) precalculated base-addresses
- interestingly it also fixes/hides some linker warnings LNK4221
which can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuration, here example from releases/0.4.7:
[819/11751] Linking C static library dll\opengl\mesa\main\mesa_main.lib
precomp.h.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
[830/11751] Linking C static library dll\opengl\mesa\math\mesa_math.lib
precomp.h.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
[858/11751] Linking C static library dll\opengl\mesa\swrast\mesa_swrast.lib
precomp.h.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
[879/11751] Linking C static library dll\opengl\mesa\tnl\mesa_tnl.lib
precomp.h.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
[897/11751] Linking C static library dll\opengl\mesa\vbo\mesa_vbo.lib
precomp.h.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
[1602/11751] Linking C static library sdk\lib\3rdparty\adns\adns.lib
internal.h.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
[4327/11751] Linking C static library sdk\lib\tdilib\tdilib.lib
precomp.h.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
[11714/11751] Linking C static library win32ss\user\winsrv\consrv.lib
consrv.h.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
[11726/11751] Linking C static library win32ss\user\winsrv\concfg\concfg.lib
precomp.h.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
It manages to make all the mentioned 9 LNK4221 disappear without introducing any other warnings into those modules, or into any other module.
Ftr I do not understand why String Pooling hides those LNK4221. But its effectiveness is evident.
But some other LNK4221 in other modules do still remain after it. Their count is not 0 afterwards, just significantly reduced.
Cons:
- String Pooling may slightly increase the build time, but the impact is negligible, even on my 12 year-old PC.
- String Pooling may make lousy code crash, that illegally wants to write into string constants, like we saw it for ROSTESTS298 for example.
But that is actually not a bad thing. That test was also broken beforehand and crashed even on real Windows.
We didn't find any similar problems within the 'productive code' yet.
fix is a partial pick of:
0.4.12-dev-354-g 5e673f3118
and its addendum
0.4.12-dev-655-g 237110604b [CMAKE] msvc.cmake: Remove 2 now redundant '/GF' (#1239)
can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuration:
C:\047rls\reactos\modules\rosapps\applications\screensavers\cylfrac\cylfrac.c(109) : warning C4305: 'function' : truncation from 'double' to 'float'
C:\047rls\reactos\modules\rosapps\applications\screensavers\cylfrac\cylfrac.c(110) : warning C4305: 'function' : truncation from 'double' to 'float'
C:\047rls\reactos\modules\rosapps\applications\screensavers\cylfrac\cylfrac.c(137) : warning C4305: 'initializing' : truncation from 'double' to 'GLfloat'
partial pick of 0.4.15-dev-2951-g 5d8e834897
can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuration:
[11438/11751] Building CXX object modules\rosapps\applications\net\roshttpd\CMakeFiles\roshttpd.dir\config.cpp.obj
C:\047rls\reactos\modules\rosapps\applications\net\roshttpd\include\httpd.h(70) : warning C4373: 'CHttpDaemon::OnAccept': virtual function overrides 'CServerSocket::OnAccept', previous versions of the compiler did not override when parameters only differed by const/volatile qualifiers
C:\047rls\reactos\modules\rosapps\applications\net\roshttpd\include\socket.h(132) : see declaration of 'CServerSocket::OnAccept'
[11441/11751] Building CXX object modules\rosapps\applications\net\roshttpd\CMakeFiles\roshttpd.dir\httpd.cpp.obj
C:\047rls\reactos\modules\rosapps\applications\net\roshttpd\include\httpd.h(70) : warning C4373: 'CHttpDaemon::OnAccept': virtual function overrides 'CServerSocket::OnAccept', previous versions of the compiler did not override when parameters only differed by const/volatile qualifiers
C:\047rls\reactos\modules\rosapps\applications\net\roshttpd\include\socket.h(132) : see declaration of 'CServerSocket::OnAccept'
[11442/11751] Building CXX object modules\rosapps\applications\net\roshttpd\CMakeFiles\roshttpd.dir\roshttpd.cpp.obj
C:\047rls\reactos\modules\rosapps\applications\net\roshttpd\include\httpd.h(70) : warning C4373: 'CHttpDaemon::OnAccept': virtual function overrides 'CServerSocket::OnAccept', previous versions of the compiler did not override when parameters only differed by const/volatile qualifiers
C:\047rls\reactos\modules\rosapps\applications\net\roshttpd\include\socket.h(132) : see declaration of 'CServerSocket::OnAccept'
partial pick of 0.4.15-dev-2951-g 5d8e834897
the warning can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuation:
[11432/11751] Building CXX object modules\rosapps\applications\net\netreg\CMakeFiles\netreg.dir\netreg.cpp.obj
C:\047rls\reactos\modules\rosapps\applications\net\netreg\netreg.cpp(188) : warning C4065: switch statement contains 'default' but no 'case' labels
partial pick of 0.4.15-dev-2951-g 5d8e834897
can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuation:
C:\047rls\reactos\win32ss\user\ntuser\nonclient.c(823) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
C:\047rls\reactos\win32ss\user\ntuser\nonclient.c(824) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
C:\047rls\reactos\win32ss\user\ntuser\nonclient.c(826) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
C:\047rls\reactos\win32ss\user\ntuser\nonclient.c(826) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
partial pick of 0.4.9-dev-295-g 2d9c88e0c5
can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuation:
C:\047rls\reactos\drivers\bus\acpi\cmbatt\cmbatt.c(983) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
partial pick of 0.4.13-dev-713-g 08c6d21e1f
Mutes too many to list them all here, but the motivation to pick that part was:
can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuation:
C:\047rls\reactos\modules\rostests\winetests\rpcrt4\server.c(910) : warning C4305: 'function' : truncation from 'double' to 'float'
C:\047rls\reactos\modules\rostests\winetests\rpcrt4\server.c(910) : warning C4305: 'function' : truncation from 'double' to 'float'
Timo thought most likely that muting is okay here, to keep the diff to upstream low in the tests.
Partial pick from 0.4.14-dev-847-g 42d2d5ec9c
can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuation:
c:\047rls\reactos\modules\rostests\apitests\ntdll\stackoverflow.c(57) : warning C4717: 'infinite_recursive' : recursive on all control paths, function will cause runtime stack overflow
Muting is okay here, because stack overflow is specifically what is aimed to be tested here.
Fix is a partial pick of 0.4.14-dev-847-g 42d2d5ec9c
No warnings left in module NTDLL_APITEST and no C4717 left in releases/0.4.7.
can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuation:
C:\047rls\reactos\dll\win32\netapi32\obsolete.c(241) : warning C4028: formal parameter 3 different from declaration
C:\047rls\reactos\dll\win32\netapi32\obsolete.c(301) : warning C4028: formal parameter 4 different from declaration
C:\047rls\reactos\dll\win32\netapi32\obsolete.c(335) : warning C4028: formal parameter 3 different from declaration
C:\047rls\reactos\dll\win32\netapi32\obsolete.c(405) : warning C4028: formal parameter 3 different from declaration
Fix picked from 0.4.9-dev-215-g e6d7480287
No warnings left in module module netapi32.
And no C4028 left in releases/0.4.7 and releases/0.4.8.
can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuation:
C:\047rls\reactos\dll\win32\mswsock\mswhelper.c(264) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
C:\047rls\reactos\dll\win32\mswsock\mswhelper.c(280) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
C:\047rls\reactos\dll\win32\mswsock\mswhelper.c(326) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
Fix is a partial pick of 0.4.10-dev-409-g 0f8439aa71
No warnings left in this module.
can be observed with MSVC 2010SP1 (16.0.40219.1) x86 target in dbg configuation:
c:\047rls\reactos\base\services\nfsd\name_cache.h(77) : warning C4115: 'open_delegation_type4' : named type definition in parentheses
Fixed by adding a PCH. It helps most likely because that PCH influences the include order.
Fix picked from 0.4.8-dev-227-g af212ce508
It was the last C4115 on releases/0.4.7.
Fix the .code16 macro definition for MASM/ML.
Modify the .code16 macro so that the 16-bit code segment can get a
chance to be correctly merged with other (possibly 32-bit) code
segments, without keeping generating multiple .text segments with
different attributes and generating the corresponding LNK4078 warning.
This fixes the warning when compiling NTOSKRNL on MSVC2010SP1 x86 in dbg config:
"v86.S.obj : warning LNK4078: multiple '.text' sections found with different attributes (C0520040)".
And it even slightly shrinks the size of hal.dll, e.g. for releases/0.4.7 from 1.231.360 to 1.230.848bytes
fix picked from 0.4.12-dev-494-g 0ee02b2c4d
picked from 0.4.8-dev-9-g ce4ecd604d
This was a tiny fraction of CORE-11799 (#94), but it will not resolve this ticket entirely.
A good commit nevertheless.
can be observed with MSVC 2010SP1 (16.0.40219.1)
This fixes 30 warnings of multiple kind, e.g.:
27 of the kind:
C:\047rls\reactos\dll\3rdparty\libtirpc\src\auth_sspi.c(107) : warning C4996: '_strdup': Deprecated POSIX name, Try _strdup instead!
and also:
C:\047rls\reactos\dll\3rdparty\libtirpc\src\svc_vc.c(315) : warning C4101: 'cleanfds' : unreferenced local variable
C:\047rls\reactos\dll\3rdparty\libtirpc\src\svc_vc.c(488) : warning C4101: 'pollfd' : unreferenced local variable
C:\047rls\reactos\dll\3rdparty\libtirpc\src\xdr_rec.c(424) : warning C4133: '=' : incompatible types - from 'char *' to 'int32_t *'
Muting makes sense for this *3rd party library*. Better than creating more diff within here by addressing them.
This leaves no warnings left within this lib.
Fix picked from:
0.4.12-dev-803-g 3d3377a5c0
can be observed with MSVC 2010SP1 (16.0.40219.1)
and building in debug configuration for x86 target:
[9209/11324] Building RC object dll\win32\browseui\CMakeFiles\browseui.dir\browseui.rc.res
C:\047rls\reactos\sdk\include\psdk\windef.h(121) : warning RC4005: 'DECLSPEC_IMPORT' : redefinition
fix picked from 0.4.8-dev-988-g b9f88d594d
aka. "[PSDK][XDK] Remove DECLSPEC_* from windef.h, protect against redefinition in winnt.h"
which was the proper fix after the initial attempt of 0.4.8-dev-981-g e2c6c3cfc7
This was the last of the kind RC4005 for the releases/0.4.7 branch.
can be observed with MSVC 2010SP1 (16.0.40219.1)
and building in debug configuration for x86 target:
C:\047rls\reactos\drivers\network\dd\pcnet\pcnet.c(1226) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
fix is a partial pick of 0.4.8-dev-589-g a2f7de7ee8
The chance for us to get attacked is rather low, because
LIBTIRPC is used solely for the nfs service and
I pushed aggressively years ago to have that turned from
'Automatic' to 'Manual' already.
I doubt many used this service, that does not exist on real Windows at all.
Attacks may result in Denial-Of-Service.
For details check:
https://nvd.nist.gov/vuln/detail/CVE-2018-14622https://nvd.nist.gov/vuln/detail/CVE-2018-14621
Fixes picked from:
0.4.11-dev-93-g 000bbe074e CVE-2018-14622 CORE-15005
0.4.11-dev-887-g f5f3ff86ea CVE-2018-14621 CORE-15407
Continininininininininously improving ros by fixing glitches in msg408 and msg411. ;-)
fix is a partial (intentionally non-squashed) pick of 0.4.14-dev-1142-g 92aabb07fb (#2393)
(#2393) is fully covered now for the backport.
-------------
and fix a missing '\0' in pl-PL.rc at end of msg502 that was fixed during 0.4.8-dev'ing.
Chinese manually groomed similar to the
western '\n.'->'.\n' fixes (Chinese does not match our regular pattern matches).
fix is a partial (intentionally non-squashed) pick of 0.4.14-dev-1142-g 92aabb07fb (#2393)
Phew, these are the last ones for this branch!
Now reduced by the preceding commits to a manageable amount.
fix is a partial (intentionally non-squashed) pick of 0.4.14-dev-1142-g 92aabb07fb (#2393)
Yes, I do see the 'conti\n\n\n\n\n\n\nnue'-mess within dll/win32/rasdlg/lang/en-US.rc
Will be taken care of later.
fix is a partial (intentionally non-squashed) pick of 0.4.14-dev-1142-g 92aabb07fb (#2393)
Yes, I do see that we still have some '\n.' typos in some files, e.g.
base/applications/shutdown/it-IT.rc. I will take care of them later!
fix is a partial (intentionally non-squashed) pick of 0.4.14-dev-1142-g 92aabb07fb (#2393)
Yes, I double-checked the msi_en.rc, and we do only use the \t after the \n (without additional spaces).
It is a good harmonization therefore to reduce the indentation level here.
fix is a partial (intentionally non-squashed) pick of 0.4.14-dev-1037-g 554c41e4d7 (#2387)
I am aware that some of the touched lines do still contain other issues for the moment!