1
0
mirror of https://github.com/winscp/winscp.git synced 2026-10-24 02:28:55 +03:00

211 Commits

Author SHA1 Message Date
Martin Prikryl
6f39a04987 Issue 2475 – Support client certificates with intermediate certificate
https://winscp.net/tracker/2475

Source commit: 7075ae74fd7e6cd92ed8d8e7422528dc56743158
2026-10-22 00:36:04 +02:00
Eduardo Correia
1c4e584fe9 Swap GetParentProcessId's memset arguments back
memset takes the fill value before the size, so
memset(&ProcessEntry, sizeof(ProcessEntry), 0) zeroed nothing. It was
harmless, as Process32First fills the entry it reads, but the entry is now
cleared as intended.
2026-10-13 10:57:49 +02:00
Eduardo Correia
8a82e298f8 Close the handle FileGetSymLinkTargetSafe opens
FileGetSymLinkTargetSafe opens the link with CreateFile to read its reparse
point, but never closes the handle, so each call leaks one. DriveView calls
it for every symbolic link and junction it lists.
2026-10-13 10:52:56 +02:00
Martin Prikryl
0b3eca59ad Not scanning local directory symlinks pointing to network drives
Source commit: 19baa413392caabbb7afea6eb2b925cc98ca5076
2026-10-07 00:36:56 +02:00
Martin Prikryl
d47792f01c Issue 2455 – Some strings use incorrect translation in 64-bit version
https://winscp.net/tracker/2455

Some related refactoring:
Refactoring php release script includes
Reusing complete_translations in copy_complete_translations.php
Removing obsolete maketran.bat hack

Source commit: 07476ec822e4bd7b8b1c65ceb9783b6d92f20489
2026-09-01 12:53:54 +02:00
Martin Prikryl
7221bf08e3 Bug fix: 64-bit build did not identify its system to be 64-bit, what among other prevented it from identifying 64-bit COM registrations
Source commit: dd523846faab989b5bc6d69066da6cde6daa5dbb
2026-08-21 16:10:16 +02:00
Martin Prikryl
7458a02b23 Bug fix: Incorrect number validation
For example causes inability to add a location profile with name like "1M"

Source commit: 324abb63b5746414e990dd499fecb174c104545e
2026-08-02 13:17:50 +02:00
Martin Prikryl
b66c08b30a Issue 2450 – Slashes in filenames can cause path traversal when invalid filename characters replacement is disabled
https://winscp.net/tracker/2450

Source commit: dbf555cdba84101ff9a4e2e491544515a5a95b54
2026-06-16 00:50:07 +02:00
Martin Prikryl
941ce4e50e Issue 2440 – When opening session in PuTTY to a host for which WinSCP has multiple hostkeys cached, use the last key or the key that PuTTY has cached
https://winscp.net/tracker/2440

Source commit: 7a596711a8c49cb70687679fe72aec92159ddf6e
2026-05-19 00:59:46 +02:00
Martin Prikryl
327d867495 Issue 2437 – Configurable warning when opening large file in an internal editor
https://winscp.net/tracker/2437

Source commit: 74bdbd0d32c1416c24f384dfc02cc257cc68da14
2026-05-13 01:11:17 +02:00
Martin Prikryl
a1589d1d56 Reading all system settings from 64-bit registry and explicitly using 32-bit registry for own settings for forward compatibility with future 64-bit build
https://winscp.net/tracker/618

Source commit: 752a9de02690c8b6444bea0eb333bab8a3051ee0
2026-04-25 11:43:53 +02:00
Martin Prikryl
69ea522611 Reusing EncodeStrToBase64
Source commit: e31dd55472dcec1eae8fee52c3c6c19247fd2446
2026-04-10 01:12:59 +02:00
Martin Prikryl
d843cab082 Adding more startup sequence counter steps (Y, Q, V, Z, a) around F
(previous steps added in aee26917)

Source commit: b93e0f99f5dfce22f9bb9e1451ba11040ad05355
2026-04-04 01:24:19 +02:00
Martin Prikryl
afbaf8f9ea Shared BOM declaration
Source commit: cba15f59434ab48b2f30e93d304e8e3fcffd0463
2026-01-22 14:53:05 +01:00
Martin Prikryl
a2119a7eac Types and casts safe in respect to pointer size for forward 64-bit compatibility
Also GetWindowLongPtr and GWLP_USERDATA

https://winscp.net/tracker/618

Source commit: c85fdf15e50ce8a6f35b1c4d2a0125a0b9c4f1f0
2026-01-22 14:51:13 +01:00
Martin Prikryl
efe94d6c08 Using actual types and functions instead of WinAPI and Unicode/Ansi macros
Source commit: b7fec4d069296b58bb43e7a4a97dd85d558212b7
2025-12-21 01:34:21 +01:00
Martin Prikryl
52a8fee38a Unused code
Source commit: 478c6eda7be13d1a261a34c8efe8fc1e300d4a19
2025-12-18 01:27:04 +01:00
Martin Prikryl
e5efed8955 Refactoring old-style casts
Source commit: 3c37b3a958525c595ad44b081b2e0f3b288b8eb0
2025-12-18 01:20:33 +01:00
Martin Prikryl
a5dcb5f03c Using std::size instead of custom macro
Source commit: 1a89c80dd42426351f261526b617534bab664208
2025-12-07 01:17:54 +01:00
Martin Prikryl
c9ac0c1915 Removed obsolete "Preserve remote timestamp" session settings and other XP compatibility code
Source commit: 7cd7f54aae69fd36ea89a8d9ed043fc509bca5e3
2025-12-05 01:33:47 +01:00
Martin Prikryl
0ea813d2a6 Unicode string literals
Source commit: 8552ee313e85e77e094dcf227b69f1e471cebf2a
2025-11-14 15:42:03 +01:00
Martin Prikryl
8ac6a430c3 Link update
Source commit: f92eab1c36c76da309ab8f0c0c08e1ecada1c042
2025-11-06 16:14:20 +01:00
Martin Prikryl
1d9fe8c955 Changing compiler to Clang/bcc32c
- regarding the ILINK_LibraryPath for Cfg_1_Win32 (Debug):
Win32\Debug (not only Win32c\Debug) needs to be before Win32c\Release, as win32c does not include debug builds of Pascal code - so without that VCL debugging won't work
- IDE insist on adding CC_Suffix to all projects once switched to Clang, although it is only used in WinSCP.cbproj
- UNICODE define: Not needed for build (it's implicit), but CodeInsight does not know it it somehow

Source commit: da06d73eb86caff5ca9cac0185bed54da0da8f07
2025-09-04 07:53:01 +02:00
Martin Prikryl
c39d2b750f Refactoring
Source commit: 3f6916fcdc8bf21ff1e0c3c7e77049de0d509841
2025-08-29 10:08:44 +02:00
Martin Prikryl
b13e2e7c2b #pragma package(smart_init) is not useful out of packages
Source commit: 7635ac3b532214f27ea2b6fe6aa80398c857cfcd
2025-08-23 01:06:48 +02:00
Martin Prikryl
3817bbd736 Preparing for separate pre-compiled header file required by Clang
- Once doing that, including more headers to PCH, not just vcl.h
- Clang won't need explicit include, but we will probably keep it anyway.
- #pragma hdrstop has no effect in Clang

Source commit: adc8a268b6907c5337ccaa430cca7526793a3019
2025-08-22 15:43:55 +02:00
Martin Prikryl
8a6d3c374a Assertions and used variables corrections identified or imposed by Clang
Source commit: 7867f23a32b6fc0056ca5d37e3868daa67e05ca4
2025-08-01 09:32:00 +02:00
Martin Prikryl
9fefb2536c Bug fix: Failure when reading empty certificate authority configuration
Source commit: 7afc6c48816470716314023fc3598213799564ac
2025-07-07 01:09:02 +02:00
Martin Prikryl
ec910f92cc Issue 2380 – Local directories sometimes cannot be deleted
https://winscp.net/tracker/2380

Source commit: 3f3600baeddd75acfea09c5a18d0c13865e42676
2025-06-04 10:36:59 +02:00
Martin Prikryl
a22523d916 Logging loaded modules
Source commit: 6e2579d144daa82243f77b5b667eb7c2837cd41f
2025-05-21 01:14:08 +02:00
Martin Prikryl
92ba1e3f0e Some (hopefully noop) refactoring to solve Clang internal compiler error when using new variable in __finally block + Some other small code changes imposed by Clang
Source commit: eef61854e4463990c6e823a08451a9e229a8c54b
2025-03-14 16:17:09 +01:00
Martin Prikryl
7b54dde3a6 Clang identifies some functions as "noreturn" + one noexcept(false)
Source commit: fc0c35fdddcd50a10d9ca13fc515164885325f81
2025-03-14 16:15:03 +01:00
Martin Prikryl
8073dbef30 Clang incorrectly warns about some variables being unintialized, while the classic compiler warns that the value is never used
Source commit: 85cc13e319936e7644a5adde71d09623113e9176
2025-03-14 09:32:53 +01:00
Martin Prikryl
f7f00c631e Clang imposed changes that should be noop and have no effect on classic compiler
Mostly:
– incorrectly identified uninitialized variables
– explicit static global variables
– const, sign and down casts and safety
– typename use
– semicolon after function implementation
– unused variables, fields, arguments and macros
– field initialization order
– exact include filename case
– redundant in code macros already defined at project level

Source commit: 5c1338d95bd275082288dd1e773a033df6e379cd
2025-03-13 16:39:24 +01:00
Martin Prikryl
4019b56ffb Code errors identified by Clang
Notably:
Bug fix: Monospace font is not remembered if SSH banners are administratively forced
Change: Bug fix: In XML log, filename tag was included in stat tag, although explicitly documented not to

Source commit: 693ecd9b083f1460dc4d1ae1ff49e625989f8a50
2025-03-13 06:36:08 +01:00
Martin Prikryl
e202af0bdc Issue 2353 – Display and modify S3 file/object tags
https://winscp.net/tracker/2353

Source commit: 2193f9e58d66031ce58013da6a509090582addbe
2025-03-04 15:13:03 +01:00
Martin Prikryl
0d64cc1278 Issue 2352 – Remember empty session password
https://winscp.net/tracker/2352

Source commit: 8deb7a84540894f0ce1a0b3c0ff08ebffdaa44df
2025-02-28 14:27:35 +01:00
Martin Prikryl
82ca508ba5 Bug fix: Unicode contents in web sources was incorrectly decoded
Casting RawByteString to UTF8String does not properly decode UTF8

Source commit: 85ab7076039c7fc9f8b35c73b7c843ed6f892834
2025-02-28 01:09:12 +01:00
Martin Prikryl
bbedba6bb1 Bug fix: Failure when trying to use a file not containing a private key as a client certificate file with WebDAV
Source commit: e0f0381f09526e14ec4f9347e976d6bf30504221
2025-01-07 15:01:12 +01:00
Michael Lukashov
400bee57cf minor: Fix typos (#59)
Fix various minor typos
2024-12-25 11:25:35 +01:00
Martin Prikryl
6bc0a0142f Missing calling convention was causing random crashes later
Source commit: b68e9881e2da3424df429161e6d98a774fdbc495
2024-11-29 13:47:51 +01:00
Martin Prikryl
cd227ab151 Too much cleanup in 9345fadc + Inlining function used only once since
Source commit: 6328815a16d7ce56c4ff17b31dc661aa60cd8c80
2024-11-28 15:28:16 +01:00
Martin Prikryl
b0f03a87ba But fix: On Windows 11, Windows 10 version was logged
As part of refactoring, calling GetProductInfo unconditionally as it should be supported on all Windows version we support
Also querying ProductName from 64-bit key, as JCL does (does not help with Windows 11 though)

Source commit: f5f6c075df730b9e5283d6490647bf0c11b23629
2024-11-28 01:03:15 +01:00
Martin Prikryl
921ac904a1 In BCB11 Win32BuildNumber works correctly even on Windows 10 and newer
Source commit: 142548c65265adb7bfb8b7949a1a27b4083754d2
2024-11-28 00:57:50 +01:00
Martin Prikryl
9345fadc52 Removing redundant Windows XP-compatibility code (BCB11 does not support XP)
Source commit: 6442ebecf7dd5c6f45ffa9ef4ea34b82cf7ac95a
2024-11-28 00:55:43 +01:00
Martin Prikryl
ae9b173170 Issue 2327 – Failure when opening TLS connection with invalid OpenSSL configuration file
https://winscp.net/tracker/2327

Source commit: ee33d2badfff95c721fe412c86e7b305674e6703
2024-11-20 01:09:37 +01:00
Martin Prikryl
743f8d60f4 Issue 2325 – Gracefully handle invalid Unicode characters FFFF and FFFE in filenames in .NET assembly
https://winscp.net/tracker/2325

As a side effect this also "fixes" unexpected encoding of invalid character replacement in session log file (value 1 was encoded as 0100, instead of expected 0001)

Source commit: fb80501de79abd3bbd2d4d994252029f5f7bda88
2024-11-16 01:43:28 +01:00
Martin Prikryl
313c424f0f In BCB11, files temporarily downloaded for local custom command were incorrectly identified as modified
Because timestamps returned by FileAge and TSearchRec.TimeStamp do not match anymore.
They both returned "wrong" timestamp in XE6. In 11, TSearchRec.TimeStamp was "fixed", but FileAge wasn't.

SysUtils' TSearchRec.TimeStamp not seem to behave the same as our TSearchRecSmart::GetLastWriteTime()

Source commit: eabc8d1804da280ca5e9a158c27cc91ed5ee2302
2024-11-12 01:18:44 +01:00
Martin Prikryl
e09e95ee43 Upgrade to C++ Builder 11
Comments:
- .res files seem to be linked automatically, so explicit entries in project files caused duplicates
- JCL updated for compatibility with BCB11 (jcld28win32.inc obtained by running JCJ installer [uninstalled afterwards])

Source commit: ec28d10a0bbb346ed2bb3940aed37e777342e663
2024-10-08 07:18:18 +02:00
Martin Prikryl
3a3f514c59 Issue 912 – Thumbnail view in file panel (remote)
https://winscp.net/tracker/912

Source commit: 8fbf80f9ea42f043cfb856821f474c80da45aa5e
2024-09-05 13:05:19 +02:00