Kenneth Skovhede
c65dc52fc6
Path traversal now logs a warning instead of crashing the recovery restore.
2026-06-12 16:37:08 +02:00
Kenneth Skovhede
8cb1c9562e
Block path traversal in recovery tool
...
This adds a check that prevents restoring files outside the specified target folder when using the recovery tool.
When choosing to restore to a specific folder, the expectation is that files are not restored outside the folder, which could happen with symlinks or manually crafted entries. This blocks it the same way the regular restore does and also supports `--allow-restore-outside-target-directory` to disable the check.
2026-06-08 19:17:07 +02:00
Kenneth Skovhede
65eadb815c
Fixed restore in recovery tool
2026-05-14 22:25:41 +02:00
Kenneth Skovhede
c0f40e19ca
Updated copyright year to 2026 across the project
2026-04-16 15:21:24 +02:00
Kenneth Skovhede and GitHub
9464caf622
Feature/update license 2025 ( #5851 )
...
* Fixed some minor whitespace issues
* Updated all copyright to 2025
2025-01-07 09:40:39 +01:00
Kenneth Skovhede
c50e027ecd
Made the number of open archives configurable as it can consume some memory.
2024-06-25 09:51:29 +02:00
Kenneth Skovhede
246c95c60a
Added support for an offset in the recovery tool
2024-06-22 10:27:51 +02:00
Kenneth Skovhede
5d7fb66c1c
Added some statistics to the output of recovery tool
2024-06-21 15:42:24 +02:00
Kenneth Skovhede
b699937dee
Optimized the recovery tool performance.
2024-06-21 15:11:37 +02:00
Jan and GitHub
f79b1f93c4
Merge branch 'master' into fix-recoverytool-empty
2024-05-11 23:49:24 +02:00
Kenneth Skovhede
473c6cbbb8
Merge commit '4f577c65a4d8806f79637c50c21ca3a683c5a07a' into feature/kestrel-avalonia-upgrade
2024-03-04 12:21:53 +01:00
Kenneth Skovhede
40dd3c6816
Updated all license mentions to MIT
2024-02-28 15:45:30 +01:00
Jojo-1000
6b5623651c
Fix recovery tool restore paths on different OS.
...
On Linux, paths were created with \ instead of / separators if backup was originally from Windows (#4884 ).
Also fix bug that created one unnecessary level of directories in the restore path.
2023-07-11 22:37:08 +02:00
Jojo-1000
0f5b4b9707
Fix restore of empty files with recovery tool.
...
Empty files do not have data blocks stored, so don't try to get a block for empty files.
2023-07-10 16:44:24 +02:00
Thomas Suckow
ecb0249259
dotnet no longer provides a method for a string to hashalgorithm
...
* Also fix up not diposing of hashers
2021-04-04 11:17:13 -07:00
Thomas Suckow
acea2fe10f
upstream
...
Update Telegram SharpAESCrypt dep
Update SystemIOWindows to split the difference
# Conflicts:
# BuildTools/AutoUpdateBuilder/AutoUpdateBuilder.csproj
# BuildTools/AutoUpdateBuilder/packages.config
# BuildTools/DependencyFinder/DependencyFinder.csproj
# BuildTools/DependencyFinder/packages.config
# BuildTools/GnupgSigningTool/GnupgSigningTool.csproj
# BuildTools/UpdateVersionStamp/UpdateVersionStamp.csproj
# BuildTools/UpdateVersionStamp/app.config
# Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj
# Duplicati/CommandLine/BackendTester/app.config
# Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj
# Duplicati/CommandLine/BackendTool/app.config
# Duplicati/CommandLine/ConfigurationImporter/Duplicati.CommandLine.ConfigurationImporter.csproj
# Duplicati/CommandLine/Duplicati.CommandLine.csproj
# Duplicati/CommandLine/RecoveryTool/Duplicati.CommandLine.RecoveryTool.csproj
# Duplicati/CommandLine/RecoveryTool/packages.config
# Duplicati/CommandLine/app.config
# Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj
# Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config
# Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config
# Duplicati/Library/AutoUpdater/Duplicati.Library.AutoUpdater.csproj
# Duplicati/Library/AutoUpdater/app.config
# Duplicati/Library/AutoUpdater/packages.config
# Duplicati/Library/Backend/AlternativeFTP/Duplicati.Library.Backend.AlternativeFTP.csproj
# Duplicati/Library/Backend/AlternativeFTP/app.config
# Duplicati/Library/Backend/AlternativeFTP/packages.config
# Duplicati/Library/Backend/AzureBlob/Duplicati.Library.Backend.AzureBlob.csproj
# Duplicati/Library/Backend/AzureBlob/packages.config
# Duplicati/Library/Backend/Backblaze/Duplicati.Library.Backend.Backblaze.csproj
# Duplicati/Library/Backend/Backblaze/packages.config
# Duplicati/Library/Backend/Box/Duplicati.Library.Backend.Box.csproj
# Duplicati/Library/Backend/Box/packages.config
# Duplicati/Library/Backend/CloudFiles/Duplicati.Library.Backend.CloudFiles.csproj
# Duplicati/Library/Backend/CloudFiles/app.config
# Duplicati/Library/Backend/Dropbox/Duplicati.Library.Backend.Dropbox.csproj
# Duplicati/Library/Backend/Dropbox/packages.config
# Duplicati/Library/Backend/FTP/Duplicati.Library.Backend.FTP.csproj
# Duplicati/Library/Backend/FTP/app.config
# Duplicati/Library/Backend/File/Duplicati.Library.Backend.File.csproj
# Duplicati/Library/Backend/File/app.config
# Duplicati/Library/Backend/GoogleServices/Duplicati.Library.Backend.GoogleServices.csproj
# Duplicati/Library/Backend/GoogleServices/packages.config
# Duplicati/Library/Backend/HubiC/Duplicati.Library.Backend.HubiC.csproj
# Duplicati/Library/Backend/Jottacloud/Duplicati.Library.Backend.Jottacloud.csproj
# Duplicati/Library/Backend/Mega/Duplicati.Library.Backend.Mega.csproj
# Duplicati/Library/Backend/Mega/packages.config
# Duplicati/Library/Backend/OAuthHelper/Duplicati.Library.OAuthHelper.csproj
# Duplicati/Library/Backend/OAuthHelper/packages.config
# Duplicati/Library/Backend/OneDrive/Duplicati.Library.Backend.OneDrive.csproj
# Duplicati/Library/Backend/OneDrive/packages.config
# Duplicati/Library/Backend/OpenStack/Duplicati.Library.Backend.OpenStack.csproj
# Duplicati/Library/Backend/OpenStack/packages.config
# Duplicati/Library/Backend/Rclone/Duplicati.Library.Backend.Rclone.csproj
# Duplicati/Library/Backend/Rclone/packages.config
# Duplicati/Library/Backend/S3/Duplicati.Library.Backend.S3.csproj
# Duplicati/Library/Backend/S3/app.config
# Duplicati/Library/Backend/S3/packages.config
# Duplicati/Library/Backend/SSHv2/Duplicati.Library.Backend.SSHv2.csproj
# Duplicati/Library/Backend/SSHv2/packages.config
# Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj
# Duplicati/Library/Backend/SharePoint/app.config
# Duplicati/Library/Backend/Sia/Duplicati.Library.Backend.Sia.csproj
# Duplicati/Library/Backend/Sia/packages.config
# Duplicati/Library/Backend/TahoeLAFS/Duplicati.Library.Backend.TahoeLAFS.csproj
# Duplicati/Library/Backend/TahoeLAFS/packages.config
# Duplicati/Library/Backend/Tardigrade/Duplicati.Library.Backend.Tardigrade.csproj
# Duplicati/Library/Backend/Tardigrade/packages.config
# Duplicati/Library/Backend/WEBDAV/Duplicati.Library.Backend.WEBDAV.csproj
# Duplicati/Library/Backend/WEBDAV/app.config
# Duplicati/Library/Common/Duplicati.Library.Common.csproj
# Duplicati/Library/Common/IO/SystemIOWindows.cs
# Duplicati/Library/Common/app.config
# Duplicati/Library/Common/packages.config
# Duplicati/Library/Compression/Duplicati.Library.Compression.csproj
# Duplicati/Library/Compression/app.config
# Duplicati/Library/Compression/packages.config
# Duplicati/Library/DynamicLoader/Duplicati.Library.DynamicLoader.csproj
# Duplicati/Library/DynamicLoader/app.config
# Duplicati/Library/Encryption/Duplicati.Library.Encryption.csproj
# Duplicati/Library/Encryption/packages.config
# Duplicati/Library/Interface/Duplicati.Library.Interface.csproj
# Duplicati/Library/Localization/Duplicati.Library.Localization.csproj
# Duplicati/Library/Localization/packages.config
# Duplicati/Library/Logging/Duplicati.Library.Logging.csproj
# Duplicati/Library/Logging/app.config
# Duplicati/Library/Main/Duplicati.Library.Main.csproj
# Duplicati/Library/Main/app.config
# Duplicati/Library/Main/packages.config
# Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj
# Duplicati/Library/Modules/Builtin/packages.config
# Duplicati/Library/SQLiteHelper/Duplicati.Library.SQLiteHelper.csproj
# Duplicati/Library/Snapshots/Duplicati.Library.Snapshots.csproj
# Duplicati/Library/Snapshots/app.config
# Duplicati/Library/Snapshots/packages.config
# Duplicati/Library/UsageReporter/Duplicati.Library.UsageReporter.csproj
# Duplicati/Library/UsageReporter/packages.config
# Duplicati/Library/Utility/Duplicati.Library.Utility.csproj
# Duplicati/Library/Utility/app.config
# Duplicati/Library/Utility/packages.config
# Duplicati/License/Duplicati.License.csproj
# Duplicati/Server/Duplicati.Server.Serialization/Duplicati.Server.Serialization.csproj
# Duplicati/Server/Duplicati.Server.Serialization/packages.config
# Duplicati/Server/Duplicati.Server.csproj
# Duplicati/Server/app.config
# Duplicati/Server/packages.config
# Duplicati/Service/Duplicati.Service.csproj
# Duplicati/Service/app.config
# Duplicati/Tools/Duplicati.Tools.csproj
# Duplicati/UnitTest/Duplicati.UnitTest.csproj
# Duplicati/UnitTest/RestoreHandlerTests.cs
# Duplicati/UnitTest/app.config
# Duplicati/UnitTest/packages.config
# Duplicati/WindowsService/App.config
# Duplicati/WindowsService/WindowsService.csproj
# Tools/SQLiteTool/App.config
# Tools/SQLiteTool/SQLiteTool.csproj
# thirdparty/TlsTest/TlsTest.csproj
# thirdparty/UnixSupport/UnixSupport.csproj
# thirdparty/mozroots/mozroots.csproj
2020-12-29 09:59:42 -08:00
Dean Ferreyra
fd186712b4
Support problematic Windows paths
...
Change "Duplicati.CommandLine.RecoveryTool restore" to support
restoring long paths, and files and directories that end in a dot or a
space when run on Windows.
2020-07-19 06:43:30 -07:00
Max
c882953fdd
upstream
2020-05-31 13:50:13 +02:00
thomas.friedel and Kenneth Hsu
8848ad4a74
use SortedDict to sort index in memory
2020-01-23 20:07:29 -08:00
Kenneth Hsu
25d7cea6c7
Dispose of HashLookupHelper after use.
...
The HashLookupHelper contains an open FileStream that needs to be
closed.
2020-01-18 14:44:05 -08:00
Michal Naiman
1bc1e58737
upstream
2019-04-28 13:45:26 +02:00
Kenneth Hsu
457254d9e1
Remove unused local variables.
2019-04-17 20:10:53 -07:00
verhoek
ab12be6bbd
Renamed IsClientLinux to IsClientPosix .
2018-11-03 09:26:04 +01:00
verhoek
8bb406cd15
Migrated to use the platform class.
2018-11-02 22:17:16 +01:00
verhoek
b2cc18426c
Renamed Library.IO to Library.Common.IO.
...
Moved basic Platform functions to Library.Common.Platform.
Turned IO_OS into property within Library.Common.
2018-11-02 21:34:07 +01:00
verhoek
9fb38ebe9a
Continuation of Util.DirectorySeparatorString replacements.
2018-11-02 17:48:17 +01:00
verhoek
bc053df294
Moved basic IO helper functions to Library.IO.
2018-10-27 12:17:07 +02:00
Max
a22a7a7d24
remove of FasterHashing component
2018-09-09 14:42:40 +02:00
Kenneth Hsu
1605dc8ede
Use utility method to read from stream.
2018-06-06 19:54:45 -07:00
Kenneth Hsu
e2b671bf9e
Provide missing values to format items.
2018-06-02 12:05:57 -07:00
Kenneth Hsu
f12858e6a5
Mark fields that shouldn't be reassigned as readonly.
...
This makes it explicit at compile-time that these fields should not be
reassigned outside the constructor.
2018-05-25 10:04:52 -07:00
Kenneth Skovhede
842fd96543
Implemented a new logging system that is more transparent and allows a more granular way of picking log messages.
...
Added ID's to each log message and each exception to allow later introduction of a Knowledgebase service that explains each error in more detail.
2018-03-15 09:12:34 +01:00
vnau
e78c3f8650
Removed throw expressions to avoid Microsoft compiler bug.
2017-12-25 22:59:17 +07:00
vnau
62a7901aca
Compression modules refactored to work with streams instead of filenames;
...
Added unit test to check compression reversibility
2017-12-25 04:12:19 +07:00
Kenneth Skovhede and GitHub
36aadc4ad1
Merge pull request #2910 from warwickmm/refactor/remove_redundant_tostring
...
Remove redundant calls to ToString
2017-11-27 08:50:00 +01:00
Kenneth Hsu
5fb1958ceb
Remove redundant calls to ToString.
2017-11-26 15:44:34 -08:00
Kenneth Hsu
8810e0130d
Make string comparisons use ordinal (binary) sort rules.
...
These string comparisons should not be culture-aware.
2017-11-26 11:19:54 -08:00
Kenneth Skovhede
6d401fbd8d
Changed all hash algorithms to use the Cng version.
...
This fixes #2621
2017-09-20 09:58:43 +02:00
Kenneth Skovhede
a029890409
Implemented better default error messsages
2017-01-09 11:35:38 +01:00
Max123456
aaadd31e0c
fix for 1170
2016-05-29 00:56:25 +02:00
Kenneth Skovhede
49dfcb2651
Fixed handling of relative paths in recovery tool.
...
This fixes #1454 .
2015-09-05 09:38:52 +02:00
Kenneth Skovhede
8018545cff
Added a simple restore tool for recovering data from a broken backup.
...
This fixes #1439 .
2015-08-21 21:59:12 +02:00