Store securely encrypted backups in the cloud!
This report presents the forensic synthetic code analysis of duplicati/duplicati, a C# project with 14,748 GitHub stars. SynthScan v2.0 examined 335,872 lines of code across 1861 source files, recording 2932 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 10.4 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2932 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Duplicati/ShellExtension/FolderBackupStatus.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/ShellExtension/FolderBackupStatus.cs | 21 | COMMENT | |
| LOW | Duplicati/ShellExtension/FolderBackupStatus.cs | 41 | /// </summary> | COMMENT |
| LOW | Duplicati/ShellExtension/DuplicatiClient.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/ShellExtension/IconOverlayHandler.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/ShellExtension/IconOverlayHandler.cs | 141 | private static readonly Lazy<DuplicatiClient> Client = new(() => new DuplicatiClient()); | COMMENT |
| LOW | Duplicati/UnitTest/Issue5987.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/SourceMaskingTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/HttpsConfigurationTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/Issue6200.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/Issue6296.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/UriUtilityTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/TestUtils.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/DataFolderSecurityTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/Issue2287.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/BasicSetupHelper.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/BasicSetupHelper.cs | 41 | : Environment.GetEnvironmentVariable("UNITTEST_BASEFOLDER") | COMMENT |
| LOW | Duplicati/UnitTest/BasicSetupHelper.cs | 61 | protected readonly string LOGFILE = Path.Combine(BASEFOLDER, "logs/logfile.log"); | COMMENT |
| LOW | Duplicati/UnitTest/HasherTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/Issue6127.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/PreventEmptySourceTest.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/BackupExclusionAttributeTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/Issue5845.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/LockingDeleteAndCompactTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/Issue1410.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/Issue1723.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/MetadataContentInDatabaseTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/TarZstdCompressionTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/Issue6254.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/Issue6205.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/SVNCheckoutsTest.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/RestoreAllFilesTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/RestoreAllFilesTests.cs | 221 | // contains both files. Each subsequent (newer) version restores only files whose | COMMENT |
| LOW | Duplicati/UnitTest/Issue4988.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/ArchiveAttributeTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/CompactDisruptionTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/SyntheticFilelistMetadataTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/SyntheticFilelistMetadataTests.cs | 41 | /// | COMMENT |
| LOW | Duplicati/UnitTest/SyntheticFilelistMetadataTests.cs | 61 | /// <param name="path">Path to the SQLite database file.</param> | COMMENT |
| LOW | Duplicati/UnitTest/SyntheticFilelistMetadataTests.cs | 401 | COMMENT | |
| LOW | Duplicati/UnitTest/SyntheticFilelistMetadataTests.cs | 421 | /// row into an orphan). | COMMENT |
| LOW | Duplicati/UnitTest/SyntheticFilelistMetadataTests.cs | 481 | // a) Detach the FileLookup row of testfile.txt from the | COMMENT |
| LOW | Duplicati/UnitTest/TestMSSQLParser.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/Issue1570.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/Issue6235.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/CompressionTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/SyncCheckoutTest.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/SyncCheckoutTest.cs | 41 | /// files removed from a folder that still exists locally are deleted from the | COMMENT |
| LOW | Duplicati/UnitTest/SyncCheckoutTest.cs | 221 | /// </summary> | COMMENT |
| LOW | Duplicati/UnitTest/SslCertificateValidatorTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/RestoreHandlerTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/SecretProviderSetSecretTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/MaskingUnmaskingTest.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/ProblematicPathTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/DatabaseUpgraderTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | Duplicati/UnitTest/DatabaseUpgraderTests.cs | 41 | [Category("Database")] | COMMENT |
| LOW | Duplicati/UnitTest/DatabaseUpgraderTests.cs | 81 | Assert.IsTrue(await TableExistsAsync(db, "Configuration"), | COMMENT |
| LOW | …cati/UnitTest/LocalDatabaseRemoveRemoteVolumesTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| LOW | …cati/UnitTest/LocalDatabaseRemoveRemoteVolumesTests.cs | 41 | { | COMMENT |
| LOW | Duplicati/UnitTest/ControllerTests.cs | 1 | // Copyright (C) 2026, The Duplicati Team | COMMENT |
| 2596 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | Duplicati/UnitTest/SecretProviderSetSecretTests.cs | 331 | await cleanupClient.V1.Secrets.KeyValue.V2.DeleteSecretAsync(createdSecretId, mountPoint: mount) | CODE |
| CRITICAL | Duplicati/UnitTest/SecretProviderSetSecretTests.cs | 455 | await cleanupClient.V1.Secrets.KeyValue.V2.WriteSecretAsync( | CODE |
| CRITICAL | Duplicati/UnitTest/SecretProviderSetSecretTests.cs | 508 | await cleanupClient.V1.Secrets.KeyValue.V2.DeleteSecretAsync(createdSecretId, mountPoint: mount) | CODE |
| CRITICAL | Duplicati/UnitTest/BorderTests.cs | 160 | using var _ = Duplicati.Library.Snapshots.Windows.WindowsShimLoader.NewSeBackupPrivilegeScope(); | CODE |
| CRITICAL | Duplicati/UnitTest/ServerApiIntegrationTests.cs | 92 | Assert.That(importedBackupId, Is.Not.Empty.And.Not.EqualTo(backupId), "Import should register a distinct | CODE |
| CRITICAL | Duplicati/UnitTest/RecoveryToolTests.cs | 348 | using (var db = await Library.Main.Database.Local.LocalDatabase.CreateLocalDatabaseAsync(options["dbpath"], | CODE |
| CRITICAL | Duplicati/UnitTest/SyncHandlerTests.cs | 1284 | using (var db = new Duplicati.Library.Main.Database.Sync.LocalSyncDatabase(m_dbPath)) | CODE |
| CRITICAL | Duplicati/UnitTest/SyncHandlerTests.cs | 1296 | using (var db = new Duplicati.Library.Main.Database.Sync.LocalSyncDatabase(m_dbPath)) | CODE |
| CRITICAL | Duplicati/UnitTest/SyncHandlerTests.cs | 1314 | using var db = new Duplicati.Library.Main.Database.Sync.LocalSyncDatabase(m_dbPath); | CODE |
| CRITICAL | Duplicati/UnitTest/SyncHandlerTests.cs | 1349 | using var db = new Duplicati.Library.Main.Database.Sync.LocalSyncDatabase(m_dbPath); | CODE |
| CRITICAL | Duplicati/UnitTest/SyncHandlerTests.cs | 1369 | using var db = new Duplicati.Library.Main.Database.Sync.LocalSyncDatabase(m_dbPath); | CODE |
| CRITICAL | Duplicati/UnitTest/SyncHandlerTests.cs | 1403 | using var db = new Duplicati.Library.Main.Database.Sync.LocalSyncDatabase(m_dbPath); | CODE |
| CRITICAL | Duplicati/UnitTest/SyncHandlerTests.cs | 1444 | using var db = new Duplicati.Library.Main.Database.Sync.LocalSyncDatabase(m_dbPath); | CODE |
| CRITICAL | Duplicati/UnitTest/SyncHandlerTests.cs | 1468 | using var db = new Duplicati.Library.Main.Database.Sync.LocalSyncDatabase(m_dbPath); | CODE |
| CRITICAL | Duplicati/UnitTest/SyncHandlerTests.cs | 1533 | using var db = new Duplicati.Library.Main.Database.Sync.LocalSyncDatabase(m_dbPath); | CODE |
| CRITICAL | Duplicati/UnitTest/SyncHandlerTests.cs | 1562 | using var db = new Duplicati.Library.Main.Database.Sync.LocalSyncDatabase(m_dbPath); | CODE |
| CRITICAL | Duplicati/UnitTest/SyncHandlerTests.cs | 1595 | using var db = new Duplicati.Library.Main.Database.Sync.LocalSyncDatabase(m_dbPath); | CODE |
| CRITICAL | Duplicati/UnitTest/IssueTests.cs | 1007 | var originalFlags = Duplicati.Library.Common.IO.PosixFile.GetFileFlags(sourceFile, false, true); | CODE |
| CRITICAL | Duplicati/UnitTest/IssueTests.cs | 1011 | var originalAcl = Duplicati.Library.Common.IO.PosixFile.GetAcl(sourceFile, false, true); | CODE |
| CRITICAL | Duplicati/UnitTest/IssueTests.cs | 1033 | var restoredFlags = Duplicati.Library.Common.IO.PosixFile.GetFileFlags(restoredFile, false, true); | CODE |
| CRITICAL | Duplicati/UnitTest/IssueTests.cs | 1038 | var restoredAcl = Duplicati.Library.Common.IO.PosixFile.GetAcl(restoredFile, false, true); | CODE |
| CRITICAL | Duplicati/Server/WebServerLoader.cs | 287 | if (!string.IsNullOrWhiteSpace(userroot) && userroot.StartsWith(Duplicati.Library.Common.IO.Util.AppendDirSe | CODE |
| CRITICAL | Duplicati/Server/Program.cs | 1028 | commandlineOptions[LOG_LEVEL_OPTION] = Duplicati.Library.Logging.LogMessageType.Profiling.ToString(); | CODE |
| CRITICAL | Duplicati/Server/webroot/signin/jquery-2.0.3.min.js | 5 | };"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty. | CODE |
| CRITICAL | …cati/Server/webroot/ngax/scripts/libs/jquery-ui.min.js | 6 | (function(e,t){function i(t,i){var s,n,r,o=t.nodeName.toLowerCase();return"area"===o?(s=t.parentNode,n=s.name,t.href&&n& | CODE |
| CRITICAL | …plicati/Server/webroot/ngax/scripts/libs/jquery.min.js | 4 | void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==( | CODE |
| CRITICAL | Duplicati/Server/webroot/login/jquery-2.0.3.min.js | 5 | };"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty. | CODE |
| CRITICAL | …licati/Library/SecretProvider/HCVaultSecretProvider.cs | 211 | await client.V1.Secrets.KeyValue.V2.ReadSecretAsync(path: secrets.First(), mountPoint: cfg.MountPoint).Configure | CODE |
| CRITICAL | …licati/Library/SecretProvider/HCVaultSecretProvider.cs | 233 | var data = await _client.V1.Secrets.KeyValue.V2.ReadSecretAsync(secret, mountPoint: _mountPoint).Configu | CODE |
| CRITICAL | …licati/Library/SecretProvider/HCVaultSecretProvider.cs | 263 | var response = await _client.V1.Secrets.KeyValue.V2.ReadSecretAsync(key, mountPoint: _mountPoint).Config | CODE |
| CRITICAL | …licati/Library/SecretProvider/HCVaultSecretProvider.cs | 300 | await _client.V1.Secrets.KeyValue.V2.ReadSecretMetadataAsync(key, _mountPoint).ConfigureAwait(false); | CODE |
| CRITICAL | …licati/Library/SecretProvider/HCVaultSecretProvider.cs | 315 | await _client.V1.Secrets.KeyValue.V2.WriteSecretAsync(key, payload, null, _mountPoint).ConfigureAwait(false); | CODE |
| CRITICAL | …plicati/Library/RestAPI/Serializable/ServerSettings.cs | 47 | this.IsDeprecated = Duplicati.Library.Backends.BackendModules.DeprecatedBackendModules.Contains(backend. | CODE |
| CRITICAL | …plicati/Library/RestAPI/Serializable/ServerSettings.cs | 48 | this.IsUntested = Duplicati.Library.Backends.BackendModules.UntestedBackendModules.Contains(backend.Prot | CODE |
| CRITICAL | Duplicati/Library/Main/ResultClasses.cs | 381 | m_taskController = new Duplicati.Library.Main.Operation.Common.TaskControl(); | CODE |
| CRITICAL | …Library/Main/Operation/RemoteSynchronizationHandler.cs | 395 | var lastSyncTime = Duplicati.Library.Utility.Utility.EPOCH.AddSeconds((long)lastSync); | CODE |
| CRITICAL | …Library/Main/Operation/Common/SourceProviderFactory.cs | 153 | var normalizedMountpoint = Duplicati.Library.Common.IO.Util.AppendDirSeparator(mountpoin | CODE |
| CRITICAL | Duplicati/CommandLine/CLI/Commands.cs | 784 | if ((new Duplicati.Library.Main.Options(options)).DisableOnBattery && (Duplicati.Library.Utility.Pow | CODE |
| CRITICAL | Duplicati/CommandLine/RecoveryTool/Download.cs | 76 | var p = Duplicati.Library.Main.Volumes.VolumeBase.ParseFilename(file); | CODE |
| CRITICAL | Duplicati/CommandLine/RecoveryTool/FileIndex.cs | 81 | var p = Duplicati.Library.Main.Volumes.VolumeBase.ParseFilename(Path.GetFileName(file)); | CODE |
| CRITICAL | …ogleWorkspace/RestoreProvider/RestoreProvider.Drive.cs | 194 | var uploadRequest = driveService.Files.Update(new Google.Apis.Drive.v3.Data.File(), fileId, contentStream, m | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 30 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 39 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 49 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 263 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 273 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 282 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 337 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 345 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 352 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 359 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 453 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 463 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 473 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 483 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 493 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 503 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 513 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | Duplicati/CommandLine/CLI/help.txt | 522 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 9 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 72 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 100 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 119 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 130 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 146 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 161 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 184 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 208 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 230 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 247 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 301 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 319 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 379 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 394 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 412 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 429 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 438 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 536 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 548 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 557 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 577 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 585 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 637 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 646 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 661 | # ============================================================================= | COMMENT |
| MEDIUM | Duplicati/CommandLine/CLI/help.txt | 693 | # ============================================================================= | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | Duplicati/UnitTest/Issue4988.cs | 54 | // Step 1: Create an empty folder | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4988.cs | 58 | // Step 2: Backup empty folder | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4988.cs | 62 | // Step 3: Find the dblock created | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4988.cs | 68 | // Step 4: Modify the dblock zip archive to simulate corruption | COMMENT |
| LOW | Duplicati/UnitTest/Issue4988.cs | 122 | // Step 9: List broken files | COMMENT |
| LOW | Duplicati/UnitTest/Issue4951.cs | 44 | // Step 1: Create a directory and a file | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4951.cs | 56 | // Step 2: Initial backup | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4951.cs | 65 | // Step 3: Rename file by changing case | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4951.cs | 69 | // Step 4: Backup again | COMMENT |
| LOW | Duplicati/UnitTest/Issue6552.cs | 26 | // Step 1: Create file A.txt and backup | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6552.cs | 45 | // Step 2: Delete A.txt, create B.txt and backup | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6552.cs | 55 | // Step 3: Delete the dblock file that the saved dindex references | COMMENT |
| LOW | Duplicati/UnitTest/Issue6552.cs | 76 | // Step 4: Recreate the database | COMMENT |
| LOW | Duplicati/UnitTest/Issue6552.cs | 91 | // Step 5: Check for invalid DeletedBlock references | COMMENT |
| LOW⚡ | …licati/UnitTest/CompactBlockVolumeIdConstraintTests.cs | 124 | // Step 1: Backup with both files | COMMENT |
| LOW⚡ | …licati/UnitTest/CompactBlockVolumeIdConstraintTests.cs | 128 | // Step 2: Remove large file and backup (deletes old version, moves large blocks to DeletedBlock) | COMMENT |
| LOW⚡ | …licati/UnitTest/CompactBlockVolumeIdConstraintTests.cs | 136 | // Step 3: Add large file back and backup (moves large blocks back to Block) | COMMENT |
| LOW | …licati/UnitTest/CompactBlockVolumeIdConstraintTests.cs | 161 | // Step 4: Compact - this triggers the bug in the unfixed codebase. | COMMENT |
| LOW | Duplicati/UnitTest/Issue6553.cs | 27 | // Step 1: Create file A and backup (Backup 1) | COMMENT |
| LOW | Duplicati/UnitTest/Issue6553.cs | 42 | // Step 2: Delete DB and Backup A again (Backup 2) | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6553.cs | 55 | // Step 3: Prepare for Recreate | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6553.cs | 62 | // Step 4: Recreate the database | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6553.cs | 75 | // Step 5: Verify that we have at least one version (Backup 2) | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6553.cs | 84 | // Step 6: Check for DeletedBlock entries pointing to Temporary volumes | COMMENT |
| LOW⚡ | …ati/UnitTest/SharedMetadataRemoveRemoteVolumesTests.cs | 95 | // Step 1: Run a successful backup — this creates Fileset 0 | COMMENT |
| LOW⚡ | …ati/UnitTest/SharedMetadataRemoveRemoteVolumesTests.cs | 102 | // Step 2: Add a new file with IDENTICAL metadata (same size, same timestamps) | COMMENT |
| LOW | …ati/UnitTest/SharedMetadataRemoveRemoteVolumesTests.cs | 180 | // Step 3: Run a new backup. The PreBackupVerify step will: | COMMENT |
| LOW⚡ | …ati/UnitTest/SharedMetadataRemoveRemoteVolumesTests.cs | 195 | // Step 4: Verify the database is consistent | COMMENT |
| LOW⚡ | …ati/UnitTest/SharedMetadataRemoveRemoteVolumesTests.cs | 199 | // Step 5: Verify we have the expected number of filesets | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6688.cs | 76 | // Step 2: Delete the local database to force recreate | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6688.cs | 79 | // Step 3: Delete the dblock file (simulate corruption/missing file) | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6688.cs | 86 | // Step 4: Recreate the database | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6688.cs | 148 | // Step 2: Modify file and backup again (Version 2) | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6688.cs | 157 | // Step 3: Delete the database and prepare for recreate | COMMENT |
| LOW | Duplicati/UnitTest/Issue6688.cs | 57 | // Step 1: Create a file with enough content to create blocks and perform initial backup | COMMENT |
| LOW | Duplicati/UnitTest/Issue6688.cs | 103 | // Step 5: Verify the database does not contain invalid references | COMMENT |
| LOW | Duplicati/UnitTest/Issue6688.cs | 127 | // Step 1: Create file A and backup (Version 1) | COMMENT |
| LOW | Duplicati/UnitTest/Issue6688.cs | 171 | // Step 4: Recreate the database | COMMENT |
| LOW | Duplicati/UnitTest/Issue6688.cs | 185 | // Step 5: Verify the database does not contain invalid references | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 52 | // Step 1: Do initial backup without --changed-files | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 60 | // Step 2: Modify one file | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 63 | // Step 3: Do backup with --changed-files pointing only to the modified file | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 108 | // Step 1: Do initial backup | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 115 | // Step 2: Delete one file | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 118 | // Step 3: Do backup with --changed-files and --deleted-files | COMMENT |
| LOW | Duplicati/UnitTest/Issue6529.cs | 76 | // Step 4: Do another backup (this should NOT fail with fileset mismatch) | COMMENT |
| LOW | Duplicati/UnitTest/Issue6529.cs | 87 | // Step 5: Verify data integrity by doing a test | COMMENT |
| LOW | Duplicati/UnitTest/Issue6529.cs | 131 | // Step 4: Do another backup (this should NOT fail) | COMMENT |
| LOW | Duplicati/UnitTest/Issue6529.cs | 151 | // Step 1: Initial backup | COMMENT |
| LOW | Duplicati/UnitTest/Issue6529.cs | 176 | // Step 5: Final backup without --changed-files | COMMENT |
| LOW⚡ | Duplicati/UnitTest/DuplicatePathTests.cs | 207 | // Step 1: Do initial backup | COMMENT |
| LOW⚡ | Duplicati/UnitTest/DuplicatePathTests.cs | 214 | // Step 2: Modify one file | COMMENT |
| LOW⚡ | Duplicati/UnitTest/DuplicatePathTests.cs | 217 | // Step 3: Do backup with --changed-files | COMMENT |
| LOW | Duplicati/UnitTest/DuplicatePathTests.cs | 229 | // Step 4: Verify no duplicates in database | COMMENT |
| LOW | Duplicati/Library/Backend/DrimeCloud/DrimeBackend.cs | 768 | // Step 1: Create multipart upload | COMMENT |
| LOW | Duplicati/Library/Backend/DrimeCloud/DrimeBackend.cs | 797 | // Step 2: Calculate parts and sign URLs | COMMENT |
| LOW | Duplicati/Library/Backend/DrimeCloud/DrimeBackend.cs | 821 | // Step 3: Upload each part | COMMENT |
| LOW | Duplicati/Library/Backend/DrimeCloud/DrimeBackend.cs | 867 | // Step 4: Complete multipart upload | COMMENT |
| LOW | Duplicati/Library/Backend/DrimeCloud/DrimeBackend.cs | 886 | // Step 5: Register the file entry | COMMENT |
| LOW | …ati/Library/Main/Database/Local/LocalRepairDatabase.cs | 1999 | // Step 1: Create temp table with Metadataset IDs referencing empty blocksets (excluding the one to keep) | COMMENT |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | Duplicati/UnitTest/Issue4988.cs | 54 | // Step 1: Create an empty folder | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4988.cs | 58 | // Step 2: Backup empty folder | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4988.cs | 62 | // Step 3: Find the dblock created | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4988.cs | 68 | // Step 4: Modify the dblock zip archive to simulate corruption | COMMENT |
| LOW | Duplicati/UnitTest/Issue4988.cs | 122 | // Step 9: List broken files | COMMENT |
| LOW | Duplicati/UnitTest/Issue4951.cs | 44 | // Step 1: Create a directory and a file | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4951.cs | 56 | // Step 2: Initial backup | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4951.cs | 65 | // Step 3: Rename file by changing case | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue4951.cs | 69 | // Step 4: Backup again | COMMENT |
| LOW | Duplicati/UnitTest/Issue6552.cs | 26 | // Step 1: Create file A.txt and backup | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6552.cs | 45 | // Step 2: Delete A.txt, create B.txt and backup | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6552.cs | 55 | // Step 3: Delete the dblock file that the saved dindex references | COMMENT |
| LOW | Duplicati/UnitTest/Issue6552.cs | 76 | // Step 4: Recreate the database | COMMENT |
| LOW | Duplicati/UnitTest/Issue6552.cs | 91 | // Step 5: Check for invalid DeletedBlock references | COMMENT |
| LOW⚡ | …licati/UnitTest/CompactBlockVolumeIdConstraintTests.cs | 124 | // Step 1: Backup with both files | COMMENT |
| LOW⚡ | …licati/UnitTest/CompactBlockVolumeIdConstraintTests.cs | 128 | // Step 2: Remove large file and backup (deletes old version, moves large blocks to DeletedBlock) | COMMENT |
| LOW⚡ | …licati/UnitTest/CompactBlockVolumeIdConstraintTests.cs | 136 | // Step 3: Add large file back and backup (moves large blocks back to Block) | COMMENT |
| LOW | …licati/UnitTest/CompactBlockVolumeIdConstraintTests.cs | 161 | // Step 4: Compact - this triggers the bug in the unfixed codebase. | COMMENT |
| LOW | Duplicati/UnitTest/Issue6553.cs | 27 | // Step 1: Create file A and backup (Backup 1) | COMMENT |
| LOW | Duplicati/UnitTest/Issue6553.cs | 42 | // Step 2: Delete DB and Backup A again (Backup 2) | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6553.cs | 55 | // Step 3: Prepare for Recreate | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6553.cs | 62 | // Step 4: Recreate the database | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6553.cs | 75 | // Step 5: Verify that we have at least one version (Backup 2) | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6553.cs | 84 | // Step 6: Check for DeletedBlock entries pointing to Temporary volumes | COMMENT |
| LOW⚡ | …ati/UnitTest/SharedMetadataRemoveRemoteVolumesTests.cs | 95 | // Step 1: Run a successful backup — this creates Fileset 0 | COMMENT |
| LOW⚡ | …ati/UnitTest/SharedMetadataRemoveRemoteVolumesTests.cs | 102 | // Step 2: Add a new file with IDENTICAL metadata (same size, same timestamps) | COMMENT |
| LOW | …ati/UnitTest/SharedMetadataRemoveRemoteVolumesTests.cs | 180 | // Step 3: Run a new backup. The PreBackupVerify step will: | COMMENT |
| LOW⚡ | …ati/UnitTest/SharedMetadataRemoveRemoteVolumesTests.cs | 195 | // Step 4: Verify the database is consistent | COMMENT |
| LOW⚡ | …ati/UnitTest/SharedMetadataRemoveRemoteVolumesTests.cs | 199 | // Step 5: Verify we have the expected number of filesets | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6688.cs | 76 | // Step 2: Delete the local database to force recreate | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6688.cs | 79 | // Step 3: Delete the dblock file (simulate corruption/missing file) | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6688.cs | 86 | // Step 4: Recreate the database | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6688.cs | 148 | // Step 2: Modify file and backup again (Version 2) | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6688.cs | 157 | // Step 3: Delete the database and prepare for recreate | COMMENT |
| LOW | Duplicati/UnitTest/Issue6688.cs | 57 | // Step 1: Create a file with enough content to create blocks and perform initial backup | COMMENT |
| LOW | Duplicati/UnitTest/Issue6688.cs | 103 | // Step 5: Verify the database does not contain invalid references | COMMENT |
| LOW | Duplicati/UnitTest/Issue6688.cs | 127 | // Step 1: Create file A and backup (Version 1) | COMMENT |
| LOW | Duplicati/UnitTest/Issue6688.cs | 171 | // Step 4: Recreate the database | COMMENT |
| LOW | Duplicati/UnitTest/Issue6688.cs | 185 | // Step 5: Verify the database does not contain invalid references | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 52 | // Step 1: Do initial backup without --changed-files | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 60 | // Step 2: Modify one file | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 63 | // Step 3: Do backup with --changed-files pointing only to the modified file | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 108 | // Step 1: Do initial backup | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 115 | // Step 2: Delete one file | COMMENT |
| LOW⚡ | Duplicati/UnitTest/Issue6529.cs | 118 | // Step 3: Do backup with --changed-files and --deleted-files | COMMENT |
| LOW | Duplicati/UnitTest/Issue6529.cs | 76 | // Step 4: Do another backup (this should NOT fail with fileset mismatch) | COMMENT |
| LOW | Duplicati/UnitTest/Issue6529.cs | 87 | // Step 5: Verify data integrity by doing a test | COMMENT |
| LOW | Duplicati/UnitTest/Issue6529.cs | 131 | // Step 4: Do another backup (this should NOT fail) | COMMENT |
| LOW | Duplicati/UnitTest/Issue6529.cs | 151 | // Step 1: Initial backup | COMMENT |
| LOW | Duplicati/UnitTest/Issue6529.cs | 176 | // Step 5: Final backup without --changed-files | COMMENT |
| LOW⚡ | Duplicati/UnitTest/DuplicatePathTests.cs | 207 | // Step 1: Do initial backup | COMMENT |
| LOW⚡ | Duplicati/UnitTest/DuplicatePathTests.cs | 214 | // Step 2: Modify one file | COMMENT |
| LOW⚡ | Duplicati/UnitTest/DuplicatePathTests.cs | 217 | // Step 3: Do backup with --changed-files | COMMENT |
| LOW | Duplicati/UnitTest/DuplicatePathTests.cs | 229 | // Step 4: Verify no duplicates in database | COMMENT |
| LOW | Duplicati/Library/Backend/DrimeCloud/DrimeBackend.cs | 768 | // Step 1: Create multipart upload | COMMENT |
| LOW | Duplicati/Library/Backend/DrimeCloud/DrimeBackend.cs | 797 | // Step 2: Calculate parts and sign URLs | COMMENT |
| LOW | Duplicati/Library/Backend/DrimeCloud/DrimeBackend.cs | 821 | // Step 3: Upload each part | COMMENT |
| LOW | Duplicati/Library/Backend/DrimeCloud/DrimeBackend.cs | 867 | // Step 4: Complete multipart upload | COMMENT |
| LOW | Duplicati/Library/Backend/DrimeCloud/DrimeBackend.cs | 886 | // Step 5: Register the file entry | COMMENT |
| LOW | …ati/Library/Main/Database/Local/LocalRepairDatabase.cs | 1999 | // Step 1: Create temp table with Metadataset IDs referencing empty blocksets (excluding the one to keep) | COMMENT |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Tools/Commandline/generate-dlist-files.py | 319 | CODE | |
| LOW | Tools/Commandline/generate-dlist-files.py | 260 | CODE | |
| LOW | Tools/Commandline/RestoreFromPython/ijson.py | 63 | CODE | |
| LOW | Tools/Commandline/RestoreFromPython/ijson.py | 86 | CODE | |
| LOW | Tools/Commandline/RestoreFromPython/ijson.py | 120 | CODE | |
| LOW | Tools/Commandline/RestoreFromPython/ijson.py | 168 | CODE | |
| LOW | Tools/Commandline/RestoreFromPython/ijson.py | 199 | CODE | |
| LOW | Tools/Commandline/RestoreFromPython/ijson.py | 225 | CODE | |
| LOW | Tools/Commandline/RestoreFromPython/ijson.py | 243 | CODE | |
| LOW | Tools/Commandline/RestoreFromPython/ijson.py | 45 | CODE | |
| LOW | …s/Commandline/RestoreFromPython/restore_from_python.py | 30 | CODE | |
| LOW | …s/Commandline/RestoreFromPython/restore_from_python.py | 108 | CODE | |
| LOW | …s/Commandline/RestoreFromPython/restore_from_python.py | 205 | CODE | |
| LOW | …s/Commandline/RestoreFromPython/restore_from_python.py | 213 | CODE | |
| LOW | …s/Commandline/RestoreFromPython/restore_from_python.py | 271 | CODE | |
| LOW | …s/Commandline/RestoreFromPython/restore_from_python.py | 366 | CODE | |
| LOW | Tools/Commandline/RestoreFromPython/pyaescrypt.py | 19 | CODE | |
| LOW | Tools/Commandline/ReEncrypt/ReEncrypt.py | 53 | CODE | |
| LOW | Tools/Commandline/ReEncrypt/ReEncrypt.py | 138 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …Library/Snapshots/apfs-scripts/remove-apfs-snapshot.sh | 27 | # Check if NAME looks like an APFS snapshot (com.apple.TimeMachine...) | COMMENT |
| LOW | Duplicati/Library/Snapshots/apfs-scripts/find-volume.sh | 20 | # Check if it is an APFS volume | COMMENT |
| LOW | ReleaseBuilder/Resources/MacOS/Agent/uninstall.sh | 12 | # Check if the LaunchAgent is loaded for the user | COMMENT |
| LOW | ReleaseBuilder/Resources/MacOS/CLI/uninstall.sh | 12 | # Check if the LaunchAgent is loaded for the user | COMMENT |
| LOW | ReleaseBuilder/Resources/MacOS/AppBundle/uninstall.sh | 12 | # Check if the LaunchAgent is loaded for the user | COMMENT |
| LOW | ReleaseBuilder/Resources/debian/init-script-example.sh | 28 | # Check if a given process pid's cmdline matches a given name | COMMENT |
| LOW | ReleaseBuilder/Resources/debian/init-script-example.sh | 41 | # Check if the process is running looking at /proc | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …i/Library/Snapshots/lvm-scripts/create-lvm-snapshot.sh | 75 | # Create the logical volume snapsnot | COMMENT |
| MEDIUM | …i/Library/Snapshots/lvm-scripts/create-lvm-snapshot.sh | 106 | # Create a mount point | COMMENT |
| MEDIUM | Tools/Commandline/generate-dlist-files.py | 424 | # Create the zip file | STRING |
| MEDIUM | …uilder/Resources/fedora/duplicati-install-recursive.sh | 3 | # This file is a workaround to install a directory recursively, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ot/ngax/scripts/controllers/RestoreDirectController.js | 83 | function checkForValidBackupDestination(continuation) { | CODE |
| LOW | …broot/ngax/scripts/controllers/EditBackupController.js | 27 | function computePassPhraseStrength() { | CODE |
| LOW | …broot/ngax/scripts/controllers/EditBackupController.js | 273 | function resetAllRetentionOptionsExcept(optionToKeep) { | CODE |
| LOW | …broot/ngax/scripts/controllers/EditBackupController.js | 363 | function checkForGeneratedPassphrase(continuation) { | CODE |
| LOW | …broot/ngax/scripts/controllers/EditBackupController.js | 379 | function checkForChangedPassphrase(continuation) { | CODE |
| LOW | …broot/ngax/scripts/controllers/EditBackupController.js | 420 | function checkForValidBackupDestination(continuation) { | CODE |
| LOW | …broot/ngax/scripts/controllers/EditBackupController.js | 433 | function checkForDisabledEncryption(continuation) { | CODE |
| LOW | Duplicati/Library/Modules/Builtin/RunScript.cs | 533 | private class ConsoleDataHandler | CODE |
| LOW | Tools/Verification/DuplicatiVerify.py | 159 | def convert_bytes_to_readable(size): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Tools/Commandline/generate-dlist-files.py | 22 | CODE | |
| LOW | Tools/Commandline/RestoreFromPython/ijson.py | 27 | CODE | |
| LOW | Tools/Commandline/ReEncrypt/ReEncrypt.py | 22 | CODE | |
| LOW | Tools/Commandline/ReEncrypt/ReEncrypt.py | 29 | CODE | |
| LOW | Tools/Commandline/ReEncrypt/ReEncrypt.py | 29 | CODE | |
| LOW | Tools/Commandline/ReEncrypt/ReEncrypt.py | 29 | CODE | |
| LOW | Tools/Verification/DuplicatiVerify.py | 12 | CODE | |
| LOW | Tools/Verification/DuplicatiVerify.py | 13 | CODE | |
| LOW | Tools/Verification/DuplicatiVerify.py | 15 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …Duplicati.Browser.Test/Features/LocalBackup.feature.cs | 3 | // This code was generated by SpecFlow (https://www.specflow.org/). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/Server/webroot/ngax/scripts/services/DialogService.js | 88 | 'placeholder': placeholder, | CODE |
| LOW | Duplicati/Library/Modules/Builtin/Strings.cs | 179 | public static string InvalidRecipient(string recipient) => LC.L(@"The recipient ""{0}"" is not a valid email add | CODE |
| LOW | Duplicati/Library/Modules/Builtin/run-script-example.sh | 199 | EMAIL="admin@example.com" | CODE |
| LOW | …ti/Duplicati.Browser.Test/PageObjects/AddBackupPage.cs | 47 | if (NameTextboxElement.WaitForElementBeing(e => e.GetAttribute("placeholder") is "Moje Zdjęcia" or "My Photos")) | CODE |
| LOW | …ti/Duplicati.Browser.Test/PageObjects/AddBackupPage.cs | 88 | if (FilePathTextbox.WaitForElementBeing(e => e.GetAttribute("placeholder") is "Wprowadź ścieżkę docelową")) | CODE |
| LOW | …ti/Duplicati.Browser.Test/PageObjects/AddBackupPage.cs | 114 | if (FilePathTextbox.WaitForElementBeing(e => e.GetAttribute("placeholder") is "Dodaj ścieżkę bezpośrednio")) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …n/RemoteSynchronization/RemoteSynchronizationRunner.cs | 375 | // TODO low memory mode, where things aren't kept in memory. Maybe utilize SQLite? | COMMENT |
| MEDIUM | …ti/WebserverCore/Middlewares/SynologyAuthMiddleware.cs | 350 | // 1) Prefer group-name membership (more robust). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Tools/Commandline/pause-resume.py | 63 | print("Something went wrong -- %d %s" % (r.status_code, r.reason)) | CODE |
| MEDIUM | Tools/Commandline/generate-dlist-files.py | 491 | print(f"Error: Database file not found: {args.database}", file=sys.stderr) | STRING |
| MEDIUM | Tools/Commandline/generate-dlist-files.py | 527 | print(f"Error: Fileset ID {args.fileset_id} not found", file=sys.stderr) | STRING |
| LOW | …s/Commandline/RestoreFromPython/restore_from_python.py | 94 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Duplicati/Library/Backend/OneDrive/SharePointV2.cs | 102 | // Make sure to replace any "//" in the original path with "/", so the substrings line up. | COMMENT |