Commit Graph

3529 Commits

Author SHA1 Message Date
Václav Zouzalík
af895a116b [PING] Add Slovak (sk-SK) translation (#8784) 2026-05-06 15:50:11 +03:00
Eric Kohl
d309745deb [NETSH] Add missing iphlpapi.h import 2026-05-03 20:05:13 +02:00
Vitaly Orekhov
688982d429 [SNDVOL32] Deduplicate dialog control retrieval code 2026-04-29 14:24:28 +03:00
Vitaly Orekhov
a9051012e5 [SNDVOL32] Update copyright preamble
This time for `sndvol32.c`.
2026-04-29 14:23:36 +03:00
Hermès Bélusca-Maïto
b2e33f26eb [REACTOS] Merge our bootcd and livecd into an all-in-one ReactOS BootCD (#7313)
CORE-9069, CORE-13525, RELEASE-11

This new BootCD contains the functionality of both the original bootcd
(text-mode 1st-stage installer) and the livecd (that will include the
1st-stage GUI installer later).
Our separate livecd ISOs become obsolete, and this completely removes
the need for the so-called "hybridcd" ISO.

Some details:

- The "hybridcd" build target is completely removed, since now the new
  BootCD *is* basically what we used to call "hybridcd".

- The "livecd" build target is kept so far (to minimize the code changes),
  but internally I start to refer to it as "LiveImage", and is reduced
  to a minimum.

  A minimal non-bootable "liveimg.iso" is built (but currently not
  included within the BootCD). Its purpose will be to implement the
  "ReactOS Live" functionality as a RAMDISK.
  (We currently don't support other file formats apart from ISO and
  flat disk for a RAMDISK).

  The "ReactOS Live" (non-RAMDISK) is implemented by adding to the
  BootCD file tree the files from the LiveImage.
  These files add two root directories, "Profiles" and "reactos"
  (which is the SystemRoot for the non-ramdisk LiveImage).

- The minimal text-mode ReactOS installation used for the 1st-stage
  installer, including USETUP itself, and the executable for the
  1st-stage GUI installer and the reactos.cab (installation source),
  are moved to the root directory called "i386" (ideally, one directory
  per architecture).

- The "bootcdregtest" target, i.e. the ISOs we feed our testbots with,
  are left untouched, i.e. they are only constituted of the 1st-stage
  text-mode installation only, but placed in a per-architecture root
  directory ("i386", etc. as for the bootcd).

- Remove the ACPI APIC/SMP entries from bootcd.ini. They will be made
  available via the Advanced Boot Options F8 menu in Debug builds, for
  testing purposes only, in a subsequent commit.

This commit is based upon an older SVN one:
svn path=/branches/setup_improvements/; revision=75273
2026-04-28 23:11:10 +02:00
Katayama Hirofumi MZ
ffa1c541aa [MSCTFIME][CICERO] Implement CicProfile::GetActiveLanguageProfile (#8869)
Supporting CTF IMEs.
JIRA issue: CORE-19360
- Add base/ctf/cicero/ciciface.h to
  add CicInterface_RefCnt template
  class.
- Add CicProfile::
  LanguageProfilesCallback callback
  function.
- Implement CicProfile::
  GetActiveLanguageProfile and
  CicProfile::IsIME functions.
2026-04-20 21:51:45 +09:00
Katayama Hirofumi MZ
1bdaeee30f [CICERO] Add CicFirstInFirstOut (cicfifo.h) (#8870)
Supporting CTF IMEs. This FIFO
will be used in TRANSMSG handling.
JIRA issue: CORE-19360
- Add base/ctf/cicero/cicfifo.h.
- Implement CicFirstInFirstOut
  template class.
2026-04-19 20:05:27 +09:00
Eric Kohl
89221f5d55 [DNSRSLVR][NETCFGX] Notify the dnscache service if the names list changed 2026-04-18 23:17:00 +02:00
Eric Kohl
0bd6afd1a8 [DHCPCSVC] Set the AddressType value for network interfaces
AddressType 0: Static address, DHCP provided address or static address from alternate configuration
AddressType 1: Automatic Private IP Address (APIPA)
2026-04-18 16:51:17 +02:00
Hermès Bélusca-Maïto
aa8d624253 [SMSS] "BootDir" value creation: Fix fallback code
Addendum to commit c498d0930a.

`SmpTranslateSystemPartitionInformation()`: Reset the `DirInfo->Name.Buffer`
to use the `DirInfoBuffer` scratch area, before doing the OS boot drive letter
fallback. Otherwise, writing directly to `DirInfo->Name.Buffer` would
use its old value, that is going to be `NULL` when the calls to
`NtQueryDirectoryObject()` failed, and this would induce a memory access
crash.

Take also the opportunity to use structures embedding the
`KEY_VALUE_PARTIAL_INFORMATION` and `OBJECT_DIRECTORY_INFORMATION`
data headers, instead of straight `CHAR` arrays. This allows the
structures to use the correct memory alignments required by these
data headers.
2026-04-16 16:11:55 +02:00
Eric Kohl
cbfc755c2f [DHCPSVC][PSDK][IDL] Add the DhcpAcquireParametersByBroadcast stub and remove the DhcpQueryHWInfo function 2026-04-13 01:06:31 +02:00
Eric Kohl
ed5124b7a8 [DHCPCSVC][PSDK][IDL] Implement the enable/disable DHCP part of DhcpNotifyConfigChange/Ex 2026-04-12 18:29:10 +02:00
Eric Kohl
98b9b434c6 [DHCPCSVC] Implement alternate configuration
- Set the ip address, subnet mask and default gateway when an alternate configuration has been configured.
- Set registry values for the alternate configuration and APIPA.
2026-04-12 14:35:48 +02:00
Hermès Bélusca-Maïto
c498d0930a [SMSS] "BootDir" value creation: Use a fallback if no drive letter was assigned to the SystemPartition
In `SmpTranslateSystemPartitionInformation()`, fall back to using the
OS boot drive letter if none was found to be assigned to the SystemPartition.
Otherwise, just fail if any other error was encountered.
(This behaviour has been introduced in a post-SP1 Windows 7 update.)

Additionally, simplify very slightly the code.
2026-04-11 18:16:13 +02:00
Eric Kohl
10092f8466 [DHCPCSVC] Load and update the alternate configuration data 2026-04-07 00:55:32 +02:00
Eric Kohl
4b9adaa971 [DHCPCSVC] Add the client code and server stub for DhcpFallbackRefreshParams
DhcpFallbackRefreshParams is called by the TCPIP notification object after the alternate configuration has been changed.
2026-04-06 13:42:03 +02:00
Václav Zouzalík
e46a837fb7 [HOSTNAME] Update Czech (cs-CZ) and Slovak (sk-SK) translation (#8817) 2026-03-31 22:43:59 +02:00
Doug Lyons
c2f56643b6 [VFATLIB][FMIFS][CHKDSK] Chkdsk fixes and improvements (#8810)
CORE-18432

Co-authored-by: Carl J. Bialorucki <carl.bialorucki@reactos.org>
2026-03-31 13:13:31 -05:00
Hermès Bélusca-Maïto
97cc32519f [WLANCONF] Improve imports and fix x64 build warnings
wlanconf\wlanconf.c(592):
  warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
wlanconf\wlanconf.c(602),(683):
  warning C4267: '=': conversion from 'size_t' to 'ULONG', possible loss of data
2026-03-30 21:46:10 +02:00
Hermès Bélusca-Maïto
3913b3cf35 [TRACERT] Improve imports, simplify code, and fix x64 build warning
tracert\tracert.cpp(209):
  warning C4267: 'argument': conversion from 'size_t' to 'socklen_t', possible loss of data
2026-03-30 21:46:09 +02:00
Hermès Bélusca-Maïto
012e9be792 [NETSH] Improve imports, simplify code, and fix x64 build warnings
netsh\helper.c(84):
  warningC4267: 'function': conversion from 'size_t' to 'DWORD', possible loss of data
netsh\netsh.c(65):
  warning C4267: '+=': conversion from 'size_t' to 'INT', possible loss of data
2026-03-30 21:46:07 +02:00
Hermès Bélusca-Maïto
0038ad5423 [NET] Improve imports, simplify code, and fix x64 build warnings
net\cmdLocalGroup.c(125):
  warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
net\cmdShare.c(115),(128),(142):
  warning C4267: '=': conversion from 'size_t' to 'INT', possible loss of data
net\cmdUse.c(89),(178),(194):
  warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
net\cmdUser.c(597),(631),(676):
  warning C4267: '=': conversion from 'size_t' to 'INT', possible loss of data
2026-03-30 21:46:06 +02:00
Hermès Bélusca-Maïto
c2ecf0649d [IPCONFIG] Improve imports, LP* -> P*, and fix x64 build warnings
ipconfig\ipconfig.c(236):
  warning C4267: '=': conversion from 'size_t' to 'int', possible loss of data
ipconfig\ipconfig.c(263),(306),(380):
  warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
ipconfig\ipconfig.c(303):
  warning C4267: 'initializing': conversion from 'size_t' to 'DWORD', possible loss of data
ipconfig\ipconfig.c(1318): warning C4267: 'function': conversion from 'size_t' to 'DWORD', possible loss of data
2026-03-30 21:46:05 +02:00
Hermès Bélusca-Maïto
12d0b84141 [DWNL] Improve imports, use _countof(), and fix x64 build warnings
dwnl\dwnl.c(387):
  warning C4267: 'function': conversion from 'size_t' to 'DWORD', possible loss of data
dwnl\dwnl.c(401):
  warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
2026-03-30 21:46:04 +02:00
Hermès Bélusca-Maïto
c336730f5d [WHOAMI] Improve imports, simplify code, and fix x64 build warnings
whoami\whoami.c(134):
  warning C4267: 'initializing': conversion from 'size_t' to 'DWORD', possible loss of data
whoami\whoami.c(241),(256):
  warning C4267: 'initializing': conversion from 'size_t' to 'UINT', possible loss of data
2026-03-30 21:45:49 +02:00
Hermès Bélusca-Maïto
544e8cc292 [WHOAMI] Fix heap corruption causing crashes when displaying user names/groups tables
CORE-20537

- `WhoamiSetTable()`: Specify the correct size for allocating a buffer
  for a NUL-terminated UTF16 string (previously, only half the space for
  the NUL terminator was considered).
  This caused a heap corruption when the corresponding NUL-terminate
  string was then copied into this buffer, and potentially leading to
  reading past the end of the string (since no real NUL terminator
  would be found).

- `WhoamiPrintTable()`: Just make it do what it needs to do: print the
  table and nothing more: no "side-effect" behaviour like table freeing.

- Instead, add a `WhoamiFreeTable()` routine whose purpose is just to
  free the table. And the tables are freed in the routines where they
  have been previously allocated.

- `WhoamiPrintTable()`:
  * Allocate a column-lengths table *ONLY* when needed, i.e. when
    printing the table in "table" format. When printing it in "list"
    format, there is no need to allocate anything and we can instead
    use only a single variable.

  * The old code handling "those pesky ':'" -- used when tables are
    displayed in list format, using: `whoami /all /fo list` -- was buggy,
    because it was patching the table header names, writing a ':' and a
    NUL-terminator past the end of the allocated string buffer (see bug
    described above in `WhoamiSetTable()`). As a result, once the table
    was freed, a heap corruption would happen, leading to a crash.
    Now, displaying the ':' is handled as part of the wprintf()-formatting
    table item string.

  * For developers, two ways of displaying these ':' are proposed:
    the way Windows displays the table in "list" format, where the ':'
    directly follow the item names in the 1st column; and a "nicer" one
    (to my taste!), where all the ':' are vertically aligned -- currently
    disabled.
2026-03-30 21:12:56 +02:00
Hermès Bélusca-Maïto
ddca2afaea [TASKLIST] Improve imports, simplify code 2026-03-30 16:18:48 +02:00
Hermès Bélusca-Maïto
4750869ccb [REPLACE] Improve imports and code style 2026-03-30 16:18:45 +02:00
Hermès Bélusca-Maïto
1043e35139 [LABEL] Improve imports and fix x64 build warning
label\label.c(168):
  warning C4267: '+=': conversion from 'size_t' to 'INT', possible loss of data
2026-03-30 16:18:45 +02:00
Hermès Bélusca-Maïto
85841c2ba2 [FIND] Improve imports and fix x64 build warnings
find\find.c(64),(65):
  warning C4267: '=': conversion from 'size_t' to 'INT', possible loss of data
2026-03-30 16:18:40 +02:00
Hermès Bélusca-Maïto
f19cb6af8b [EVENTCREATE] Improve imports, LP* -> P*, and fix x64 build warning
eventcreate\eventcreate.c(248):
  warning C4267: 'function': conversion from 'size_t' to 'DWORD', possible loss of data
2026-03-30 16:18:39 +02:00
Hermès Bélusca-Maïto
6079fab420 [COMP] Improve imports and fix x64 build warning
comp\comp.c(44):
  warning C4267: 'return': conversion from 'size_t' to 'INT', possible loss of data
2026-03-30 16:18:38 +02:00
Hermès Bélusca-Maïto
f00588552f [CERTUTIL] Improve imports and fix x64 build warning
certutil\asn.cpp(224):
  warning C4267: 'initializing': conversion from 'size_t' to 'DWORD', possible loss of data
2026-03-30 16:18:32 +02:00
Hermès Bélusca-Maïto
6affaf1975 [ATTRIB] Improve imports and fix x64 build warnings
attrib\attrib.c(220),(305):
  warning C4267: 'function': conversion from 'size_t' to '_off_t', possible loss of data
2026-03-30 16:18:23 +02:00
Hermès Bélusca-Maïto
7b3b63feef [AT] Improve imports, simplify code, and fix x64 build warnings
at\at.c(281),(482),(488),(509),(515),(610),(616),(637),(643):
  warning C4267: '=': conversion from 'size_t' to 'INT', possible loss of data
2026-03-30 16:10:27 +02:00
Hermès Bélusca-Maïto
d3a6aed771 [FORMAT] Improve imports, simplify code 2026-03-30 16:08:36 +02:00
Hermès Bélusca-Maïto
7a82bc8deb [CACLS] Improve imports, simplify code, and fix x64 build warning
cacls\cacls.c(198):
  warning C4267: '=': conversion from 'size_t' to 'DWORD', possible loss of data
2026-03-30 16:04:05 +02:00
Hermès Bélusca-Maïto
cab720aa2c [CMDUTILS][NETWORK][LOGOFF][RUNAS][CMD][SYSTEM] Improve imports and headers for some tools 2026-03-30 13:55:07 +02:00
Justin Miller
752f99ee3d [ANSI-SYNC-HACKS][NFSD] Small library to sync ANSI code (#8800)
The point of kernel32_vista was to provide a dll that can be used for winesyncs to still have NT6 APIs.
We're now switching to an architecture where we'll have kernelbase OR a kernel32_win7 depending on NT target compile
but this means that for an ANSI exe such as this, we need an alternative solution.
Thankfully it's pretty much only for this but just in case i made it a library.
2026-03-29 02:48:46 +00:00
Ahmed Arif
4bbc798067 [CTF][SHDOCVW] fix gcc 15 -Werror=overloaded-virtual and uninitialized member (#8785)
Fix overloaded-virtual hiding errors and uninitialized m_dwFlags in ctf and shdocvw for GCC 15
2026-03-28 14:30:53 +01:00
Hermès Bélusca-Maïto
a20a359f07 [HOSTNAME] Update translated messages; use ConUtils for output
In particular:

- `IDS_NOSET`: When the user tries `hostname -s ...`, tell them that for
  changing the computer host's name, one has to go in the "Computer Name"
  tab in the "System" control panel applet.

  NOTE: You may observe that Windows' hostname says instead,
  "Use the Network Control Panel Applet to set hostname."
  This piece of information is wrong since Windows 2000. Indeed:

  * From NT 3.1 to NT 4, one had to change the host's name via the
    "Network" control panel applet; the message was accurate back then.
  * Since Windows 2000, one changes the computer's host name via the
    "Network Identification" (Win2000) / "Computer Name" (WinXP and above)
    tab of the "System" properties Control Panel applet.
  * In addition, the ony "Network" feature in the Control Panel is the
    "Network Connections" special folder and doesn't deal with the host name.

- Use the ConUtils library for uniform output (on console or redirected)
  of localized string resources/messages. Supersedes PR #8739.

- Improve output of last-errors by showing their description, only
  falling back to showing the error number if no description exists.
2026-03-28 14:11:59 +01:00
Hermès Bélusca-Maïto
10a51ce478 [MORE] Improve imports, adjust code 2026-03-28 14:11:24 +01:00
Hermès Bélusca-Maïto
12ee8fda7b [SETUPLIB] Use a "well-known" length for disk volume labels (#7259)
Use the same `MAXIMUM_VOLUME_LABEL_LENGTH` as the one defined in the
WDK for specifying the length of buffers storing a volume label.
2026-03-23 21:46:43 +01:00
Hermès Bélusca-Maïto
ca7b77d7f0 [SETUPLIB] Improve volume device naming by querying it from the MountMgr (#7259)
CORE-13525
2026-03-23 21:46:42 +01:00
Hermès Bélusca-Maïto
bf3c54825c [SETUPLIB] Don't immediately unmount volumes when deleting partitions... (#7259)
...but wait until the partitions are actually updated on disk.

CORE-13525

DeletePartition() deletes partitions only in the virtual partitions list
in memory; the partitions still exist on the disk and are written only
later when committing all partition changes.

Thus, we do the same for file system volumes that lay on top of these
partitions being deleted: we move the linked VOLENTRY structures to a
list of "pending volumes to unmount", while they still actually stay
mounted on the system. Only when partition changes are about to be
committed to disk, the "pending volumes to unmount" list is processed
and the volumes actually unmounted, prior to modifying the partitions.
2026-03-23 21:41:56 +01:00
Timo Kreuzer
155970dca1 [RSHELL] Disable GCC 13 overloaded-virtual warning
Someone familiar with this should do a more proper fix.

C:/ReactOS/reactos/sdk/lib/atl/atlcom.h: In instantiation of 'class ATL::CComObject<CRShellClassFactory>':
C:/ReactOS/reactos/sdk/include/reactos/shellutils.h:357:45:   required from 'HRESULT ShellObjectCreatorInit(T1, const IID&, void**) [with T = CRShellClassFactory; T1 = _GUID; HRESULT = long int; IID = _GUID]'
C:/ReactOS/reactos/base/shell/rshell/misc.cpp:256:55:   required from here
C:/ReactOS/reactos/base/shell/rshell/misc.cpp:210:28: error: 'virtual HRESULT CRShellClassFactory::CreateInstance(LPUNKNOWN, const IID&, void**)' was hidden [-Werror=overloaded-virtual=]
  210 |     virtual HRESULT WINAPI CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObject)
      |                            ^~~~~~~~~~~~~~
In file included from C:/ReactOS/reactos/base/shell/rshell/misc.cpp:33:
C:/ReactOS/reactos/sdk/lib/atl/atlcom.h:171:27: note:   by 'static HRESULT ATL::CComObject<Base>::CreateInstance(ATL::CComObject<Base>**) [with Base = CRShellClassFactory; HRESULT = long int]'
  171 |     static HRESULT WINAPI CreateInstance(CComObject<Base> **pp)
      |                           ^~~~~~~~~~~~~~
2026-03-18 17:29:12 +02:00
Timo Kreuzer
daeb0bb257 [FTP] Fix invalid call to free()
While our glob is a dummy anyway and always returns NULL, the basic idea is that glob returns a NULL terminated array of pointers. The original code only calls blkfree to free any allocation in the array after the first one and doesn't free the array itself. Our code tried to be "smart" and free the array as well, but the array pointer was already changed by a "globbed++", resulting in trying to free an invalid address. Also the free was only called, when glob returned more than one result. This is now fixed by removing the "++", doing the blkfree on "&globbed[1]" and calling free on the originally returned array in all cases.

Fixes GCC 13 warning:

C:/ReactOS/reactos/base/applications/network/ftp/cmds.c: In function 'globulize':
C:/ReactOS/reactos/base/applications/network/ftp/cmds.c:1684:25: error: 'free' called on pointer 'globbed' with nonzero offset 4 [-Werror=free-nonheap-object]
 1684 |                         free((char *)globbed);
      |                         ^~~~~~~~~~~~~~~~~~~~~
C:/ReactOS/reactos/base/applications/network/ftp/cmds.c:1669:19: note: returned from 'glob'
 1669 |         globbed = glob(*cpp);
      |                   ^~~~~~~~~~

In our port glob is a dummy that always returns NULL, and the original code does not have a free here, either.
2026-03-18 17:29:12 +02:00
Timo Kreuzer
1c64719677 [CMD] Fix GCC 13 misleading-indentation warning
C:/ReactOS/reactos/base/shell/cmd/del.c: In function 'ProcessDirectory':
C:/ReactOS/reactos/base/shell/cmd/del.c:333:17: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
  333 |                 if (!(f.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ||
      |                 ^~
In file included from C:/ReactOS/reactos/base/shell/cmd/precomp.h:14,
                 from C:/ReactOS/reactos/base/shell/cmd/del.c:48:
C:/ReactOS/reactos/sdk/include/crt/tchar.h:246:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  246 | #define _tcscpy wcscpy
      |                 ^~~~~~
C:/ReactOS/reactos/base/shell/cmd/del.c:338:21: note: in expansion of macro '_tcscpy'
  338 |                     _tcscpy(pFilePart, f.cFileName);
      |                     ^~~~~~~
2026-03-18 17:29:12 +02:00
Timo Kreuzer
3413675193 [CMD] Clear global pointer to local variable after use
GCC 13 doesn't like if you keep a dangling pointer around.

C:/ReactOS/reactos/base/shell/cmd/for.c: In function 'ForF':
C:/ReactOS/reactos/base/shell/cmd/for.c:307:20: error: storing the address of local variable 'Variables' in '*fc.values' [-Werror=dangling-pointer=]
  307 |         fc->values = Variables;
      |         ~~~~~~~~~~~^~~~~~~~~~~
C:/ReactOS/reactos/base/shell/cmd/for.c:141:12: note: 'Variables' declared here
  141 |     LPTSTR Variables[32];
      |            ^~~~~~~~~
C:/ReactOS/reactos/base/shell/cmd/for.c:57:14: note: 'fc' declared here
   57 | PFOR_CONTEXT fc = NULL;
      |              ^~
2026-03-18 17:29:12 +02:00
Timo Kreuzer
f2b85d2a79 [CMD] Fix GCC 13 use-after-free warning
Make the code simpler, so GCC doesn't get confused.

C:/ReactOS/reactos/base/shell/cmd/misc.c: In function 'add_entry':
C:/ReactOS/reactos/base/shell/cmd/misc.c:216:14: error: pointer 'oldarg' may be used after 'realloc' [-Werror=use-after-free]
  216 |         *arg = oldarg;
      |         ~~~~~^~~~~~~~
In file included from C:/ReactOS/reactos/base/shell/cmd/cmd.h:29,
                 from C:/ReactOS/reactos/base/shell/cmd/precomp.h:34,
                 from C:/ReactOS/reactos/base/shell/cmd/misc.c:35:
C:/ReactOS/reactos/base/shell/cmd/cmddbg.h:30:31: note: call to 'realloc' here
   30 | #define cmd_realloc(ptr,size) realloc(ptr, size)
      |                               ^~~~~~~~~~~~~~~~~~
C:/ReactOS/reactos/base/shell/cmd/misc.c:212:12: note: in expansion of macro 'cmd_realloc'
  212 |     *arg = cmd_realloc (oldarg, (*ac + 2) * sizeof (LPTSTR));
      |            ^~~~~~~~~~~
2026-03-18 17:29:12 +02:00