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

99 Commits

Author SHA1 Message Date
Martin Prikryl
3b3f024794 Issue 2477 – Recursive SCP directory download allows local path traversal when replacing of invalid characters in filenames is disabled
https://winscp.net/tracker/2477
(cherry picked from commit f998f3e79f)

Source commit: e3039dfefb13303c6fb00db56f71c9fbb6685ef9
2026-10-24 00:44:55 +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
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
086aec0991 No need to suspend operation, while logging an exception
In the past the predecessor of HandleException probably showed the error, but it did not already in 3.0

Source commit: 9ec53d6edfaef2acf288b0ebbf6f9eb90a242ba4
2025-09-16 11:27:59 +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
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
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
Michael Lukashov
400bee57cf minor: Fix typos (#59)
Fix various minor typos
2024-12-25 11:25:35 +01:00
Martin Prikryl
85f0e92ca6 Timeout* counters
Source commit: ac2610bb1cafef757caed4ecc5b46c9065e6c719
2024-03-21 12:43:55 +01:00
Mikhail Lukashov
a8e6220b88 fix typos 2024-01-05 10:37:32 +01:00
Martin Prikryl
9a06496936 Bug fix: When S3 or WebDAV server did not provide file timestamp, downloaded file was set to oldest possible timestamp
Source commit: cfb2d3d552d1c7d4192a6d152a9c4fd105f22484
2023-11-24 01:19:20 +01:00
Martin Prikryl
155053704c Bug 2234: Cannot leave directory entered via cache with SCP protocol if it was deleted meanwhile
https://winscp.net/tracker/2234

Source commit: 7bfcbefd8e3533d4eb6fd078a8b3f5ff87e1a4cf
2023-10-27 01:03:15 +02:00
Martin Prikryl
762d297e07 Fixing b28836e3
Source commit: aea1fb65d67e1f8a1f3a5c9b3d184b96e775d355
2023-10-26 16:52:50 +02:00
Martin Prikryl
b28836e3fc Inlining method that was used only once
Source commit: c5ddd42debf2661beae413d7085511a82298c658
2023-10-26 14:14:19 +02:00
Martin Prikryl
700baf45ee Restoring consistent behavior of failing, between duplicating and moving/renaming files over existing file with WebDAV protocol in scripting and .NET assembly
The discrepancy was introduced by Bug 2120 cb021fe3.
This restores the mv/MoveFile behavior to fail, if the target file exists with WebDAV protocol (but still allows overwrite in the GUI).
The cp/DuplicateFile behavior is unchanged, but the internal API was modified to match that of mv/MoveFile, in anticipation of aligning move/duplicate command behavior in GUI and need to keep current scripting/.NET behavior.

Source commit: 4661a3ea7ec8123231e376aae9913ce8457750dd
2023-10-25 01:43:14 +02:00
Martin Prikryl
52cf67f62d Bug 2209: Improve behavior when moving/renaming over an existing folder
https://winscp.net/tracker/2209

Source commit: d7a7d5b2efeb6d81bafe7e18f60457fdbd4e11d1
2023-08-07 01:15:03 +02:00
Martin Prikryl
1aee6f1464 Bug 513: Download single large file using multiple SFTP connections
https://winscp.net/tracker/513

Source commit: d57dcad76dfe8b333dfedd8419bce984a181280c
2023-07-27 01:02:51 +02:00
Martin Prikryl
c9390ec2f8 Factoring out TSearchRecChecked::GetFilePath()
Source commit: 520a6513e98fa51aaf4bf4609dd5f187291ab035
2023-06-29 01:06:58 +02:00
Martin Prikryl
233ee20502 Simplifying TFileBuffer interface and implementation
Source commit: 21e313288097378f7f473ae737755912cedf5188
2023-06-16 01:04:48 +02:00
Martin Prikryl
9dcaa8a7f3 Refactoring TTerminal::ReadFile + Adding TTerminal::TryReadFile + Solving memory leak on the way
Source commit: 4a5c5634006d2bd9a1c6c4831d0e528b91ecd9ae
2023-03-24 00:54:30 +01:00
Martin Prikryl
f4fd36ff6d Bug 2129: Clear environment variables BLOCK_SIZE and LS_BLOCK_SIZE
https://winscp.net/tracker/2129

Source commit: 034fdfdbc7cc1811e15ae3a2276a8e655ec8e33f
2022-10-22 00:55:47 +02:00
Martin Prikryl
cb021fe3e3 Bug 2120: Consistent behavior across protocols when renaming/moving remote files
https://winscp.net/tracker/2120

Source commit: 0f11f96996352d8354d27e06d699e2c3baa4653f
2022-10-01 01:03:37 +02:00
Martin Prikryl
b538e0ac9f Unused variable from b4c490b4
Source commit: dbc4efdc93e4595309fca331ec5ed8933bedbbe0
2022-07-17 00:52:55 +02:00
Martin Prikryl
b4c490b497 File checksum calculation support for SCP protocol and SFTP protocol via secondary shell session using shell commands like sha256sum
Part of Bug 52
https://winscp.net/tracker/52

Source commit: 6804a5d18405a91e8d0a2e0beccf2c31d43ed3f1
2022-07-16 00:54:05 +02:00
Martin Prikryl
8994d1f98e Simplifying CalculateFilesChecksum API
There's a small side-effect: The scripting "checksum" command now prints file name only while before it printed the path as it was original specified in the command.

Source commit: 7594ed8befc67e4da3153cc8b1b711ab104db867
2022-07-14 00:57:43 +02:00
Martin Prikryl
b8b1cbec3e Comment on flaw in handling folders starting with tilde and containing space
Source commit: f3e75c633a5cab827fed15c52abedfa9c5bfbd17
2022-07-14 00:53:25 +02:00
Martin Prikryl
b5f0f2cdb8 Bug fix: Incorrect escaping of values in single-quoted patterns in custom commands + Unifying escaping of shell command arguments
Source commit: 9a8ae65931380050e988b295b0ddd818c11a08a4
2022-07-03 01:05:07 +02:00
Martin Prikryl
03e38c75ae Refactoring checksum calculation to share more code between FTP and SFTP in anticipation of reusing it for SCP/Shell
Source commit: 9a5138737031573ad64085fa64ef8fdd7fca8f77
2022-07-02 01:05:31 +02:00
Martin Prikryl
9b304c1b32 Bug 1641: Support ACL for S3
https://winscp.net/tracker/1641

Source commit: 03a0b16e1a553b6a2791a2276e94a4547ab3451f
2021-11-05 11:15:56 +01:00
Martin Prikryl
a4f5fdd521 Bug 2016: Failure when entering directory that contains file with a slash in its name
https://winscp.net/tracker/2016

Source commit: 3cab6dcd0bebd66d62bc8aa4ef37867b454b3d51
2021-08-13 16:29:39 +02:00
Martin Prikryl
3442fc2b6c Bug 597: Bytes transferred are recorded in XML log and available in .NET assembly API + Bug fix: When size of a file downloaded with FTP protocol changes (or when ASCII mode is used) the logged size did not reflect the actual transfer size
https://winscp.net/tracker/597

Source commit: 0c5eb1660ec82a498c0183590116f944963c385f
2021-06-03 00:57:02 +02:00
Martin Prikryl
ecdcc5ff24 Invalid assertion
Source commit: 5e4c88c5dbc3d5b86a6cc9e2ad355c4a333cdc2c
2021-04-09 00:51:02 +02:00
Martin Prikryl
eaa430fbe4 Bug 1949: Improve handling of long shell command error messages
https://winscp.net/tracker/1949

Source commit: e62368857b958d84c02e837a62ab7efe4ea63e1d
2021-02-03 00:40:50 +01:00
Martin Prikryl
6e5c55fab9 With SFTP protocol files can be streamed from stdin in scripting (part of Bug 1738)
https://winscp.net/tracker/1738

Source commit: 9c5fd31853ec9bea872e1598abebc92ff507d693
2020-05-08 03:52:20 +02:00
Martin Prikryl
891e603d76 With SFTP protocol files can be streamed to stdout in scripting (part of Bug 1738)
https://winscp.net/tracker/1738

Source commit: c8f8fa855c60a139deee81060486543f934f9d6c
2020-05-01 01:17:38 +02:00
Martin Prikryl
a255db644c Naming consistency
Source commit: 77b25e635d39a848f25c823c625a09832bccf3b8
2020-04-17 01:29:51 +02:00
Martin Prikryl
e31f0b66c7 Bug 1850: Support clearing GID/UID flag on directories with new versions of GNU coreutils
https://winscp.net/tracker/1850

Source commit: 06807f31167a532b668753db250ed2bc14d2236b
2020-04-07 01:08:07 +02:00
Martin Prikryl
1fea8fe90e Bug 1770: Files larger than 0.5 GB are never uploaded in ascii/text mode with SCP protocol as it would fail anyway due to memory issues
https://winscp.net/tracker/1770

Source commit: 5556d5c5dc139de1e67954f7466ad174ce5a11f3
2019-07-25 01:01:15 +02:00
Martin Prikryl
7c0e13e33b Bug 1637: Low logging level (S3 and partly WebDAV)
https://winscp.net/tracker/1637

Source commit: 6dc112edd1eae10916bc25717ec6581948db1abb
2018-10-25 04:51:10 +02:00
Martin Prikryl
1c4def2d13 Bug 1694: Optionally consider exit code 1 an error when executing a shell command on a server
https://winscp.net/tracker/1694

Source commit: 9532d0f403822a83785e51b6dbd07a46c52dd62e
2018-10-25 02:43:44 +02:00
Martin Prikryl
70edb8919a Small command output processing refactoring + Unit tests
Source commit: 833b264c2eb0b3ddbfd0d92cfc563f378883e37e
2018-10-25 01:42:12 +02:00
Martin Prikryl
93fc1a2807 Bug 1677: Do not fail transfer if file selected for transfer, but excluded by file mask, is deleted during operation
https://winscp.net/tracker/1677

Source commit: 88d21caaae8bbd140229a313bd8aadb159706750
2018-09-18 00:59:23 +02:00
Martin Prikryl
49d876f2c5 Bug 1675: Prevent SCP server sending files that were not requested
https://winscp.net/tracker/1675

Source commit: 4aa587620973bf793fb6e783052277c0f7be4b55
2018-09-04 01:54:28 +02:00
Martin Prikryl
dae229725f Factoring out TSearchRecSmart and TTerminal::DoAllowLocalFileTransfer + Using TSearchRec.Size instead of FindData.nFileSize*
Source commit: da32ece57151b0bd5547c383b919770bd133b8b1
2018-07-25 02:24:43 +02:00
Martin Prikryl
41f9c0137f Factoring out IsRealFile function
Source commit: 046570706e02ac13da6ecbde4c6d270637c9af56
2018-07-25 02:03:14 +02:00