An open source utility that provides fast incremental file transfer. It also has useful features for backup and restore operations among many other use cases.
This report summarizes scanner evidence for RsyncProject/rsync, a C project with 5,331 GitHub stars. SynthScan examined 146,798 lines of code across 600 source files, recording 792 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 11.8 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 387 finding(s).
Are imports declared and package/API names verified? 153 finding(s).
Are wrappers, guards, and repeated structures necessary? 263 finding(s).
Which changes need focused human review? 792 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 792 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | runtests.py | 162 | except (FileNotFoundError, subprocess.TimeoutExpired): | CODE |
| HIGH | runtests.py | 177 | except FileNotFoundError: | CODE |
| HIGH | runtests.py | 194 | except FileNotFoundError: | CODE |
| HIGH | runtests.py | 226 | except OSError: | CODE |
| HIGH | runtests.py | 242 | except OSError: | CODE |
| HIGH | runtests.py | 627 | except FileNotFoundError: | CODE |
| HIGH | runtests.py | 205 | except subprocess.CalledProcessError: | CODE |
| HIGH | runtests.py | 645 | except FileNotFoundError: | CODE |
| HIGH | runtests.py | 959 | except FileNotFoundError: | CODE |
| HIGH | testsuite/rsync_proto.py | 701 | except (ProtocolError, socket.timeout, OSError): | CODE |
| HIGH | testsuite/rsync_proto.py | 869 | except (ProtocolError, socket.timeout, OSError): | CODE |
| HIGH | testsuite/rsync_proto.py | 936 | except socket.timeout: | CODE |
| HIGH | testsuite/rsync_proto.py | 943 | except OSError: | CODE |
| HIGH | testsuite/rsync_proto.py | 1066 | except (OSError, ProtocolError): | CODE |
| HIGH | testsuite/rsync_proto.py | 1072 | except OSError: | CODE |
| HIGH | testsuite/copy-xattrs-symlink-race_test.py | 112 | except OSError: | CODE |
| HIGH | testsuite/copy-xattrs-symlink-race_test.py | 143 | except OSError: | CODE |
| HIGH | testsuite/preallocate_test.py | 90 | except OSError: | CODE |
| HIGH | testsuite/rsyncfns.py | 304 | except (OSError, struct.error): | CODE |
| HIGH | testsuite/rsyncfns.py | 323 | except (OSError, struct.error): | CODE |
| HIGH | testsuite/rsyncfns.py | 631 | except OSError: | CODE |
| HIGH | testsuite/rsyncfns.py | 739 | except OSError: | CODE |
| HIGH | testsuite/rsyncfns.py | 265 | except OSError: | CODE |
| HIGH | testsuite/rsyncfns.py | 309 | except OSError: | CODE |
| HIGH | testsuite/rsyncfns.py | 1231 | except OSError: | CODE |
| HIGH | testsuite/rsyncfns.py | 417 | except OSError: | CODE |
| HIGH | testsuite/rsyncfns.py | 486 | except OSError: | CODE |
| HIGH | testsuite/rsyncfns.py | 655 | except (OSError, subprocess.SubprocessError): | CODE |
| HIGH | testsuite/rsyncfns.py | 679 | except ValueError: | CODE |
| HIGH | testsuite/rsyncfns.py | 736 | except (subprocess.TimeoutExpired, OSError): | CODE |
| HIGH | testsuite/rsyncfns.py | 2745 | except OSError: | CODE |
| HIGH | testsuite/rsyncfns.py | 2770 | except OSError: | CODE |
| HIGH | testsuite/rsyncfns.py | 2784 | except OSError: | CODE |
| HIGH | testsuite/daemon-proxy-protocol_test.py | 138 | except OSError: | CODE |
| HIGH | testsuite/daemon-proxy-protocol_test.py | 128 | except OSError: | CODE |
| HIGH | testsuite/files-from-leak_test.py | 98 | except OSError: | CODE |
| HIGH | testsuite/daemon-argv-limit_test.py | 39 | except (ConnectionResetError, BrokenPipeError): | CODE |
| HIGH | testsuite/daemon-http-proxy_test.py | 78 | except OSError: | CODE |
| HIGH | testsuite/proto-parent-ndx-empty-dirflist_test.py | 84 | except (OSError, rp.ProtocolError): | CODE |
| HIGH | testsuite/abdiff.py | 522 | except OSError: | CODE |
| HIGH | testsuite/abdiff.py | 534 | except OSError: | CODE |
| HIGH | testsuite/abdiff.py | 686 | except OSError: | CODE |
| HIGH | testsuite/abdiff.py | 1230 | except OSError: | CODE |
| HIGH | testsuite/abdiff.py | 1236 | except OSError: | CODE |
| HIGH | testsuite/abdiff.py | 1241 | except OSError: | CODE |
| HIGH | testsuite/abdiff.py | 1518 | except OSError: | CODE |
| HIGH | testsuite/abdiff.py | 2320 | except OSError: | CODE |
| HIGH | testsuite/abdiff.py | 110 | except OSError: | CODE |
| HIGH | testsuite/rename-fullpath-symlink-race_test.py | 94 | except OSError: | CODE |
| HIGH | testsuite/perftest.py | 165 | except OSError: | CODE |
| HIGH | testsuite/perftest.py | 215 | except OSError: | CODE |
| HIGH | testsuite/perftest.py | 200 | except OSError: | CODE |
| HIGH | testsuite/perftest.py | 498 | except OSError: | CODE |
| HIGH | testsuite/proxy-host-crlf_test.py | 55 | except socket.timeout: | CODE |
| HIGH | testsuite/proxy-host-crlf_test.py | 52 | except socket.timeout: | CODE |
| HIGH | testsuite/dir-sgid_test.py | 74 | except FileNotFoundError: | CODE |
| HIGH | testsuite/rrsync-sender-leaf-flip_test.py | 83 | except (OSError, UnicodeDecodeError): | CODE |
| HIGH | testsuite/recv-discard-nullderef_test.py | 89 | except OSError: | CODE |
| HIGH | testsuite/output-control-chars_test.py | 81 | except OSError: | CODE |
| HIGH | testsuite/copy-dest-symlink-readleak_test.py | 72 | except OSError: | CODE |
| 28 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | testsuite/rsync_proto.py | 36 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/rsync_proto.py | 38 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/rsync_proto.py | 100 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/rsync_proto.py | 102 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/rsync_proto.py | 270 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/rsync_proto.py | 272 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/rsync_proto.py | 388 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/rsync_proto.py | 390 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/abdiff.py | 44 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/abdiff.py | 136 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/abdiff.py | 270 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/abdiff.py | 495 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/abdiff.py | 544 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/abdiff.py | 715 | # =========================================================================== | COMMENT |
| MEDIUM | testsuite/abdiff.py | 722 | # =========================================================================== | COMMENT |
| MEDIUM | testsuite/abdiff.py | 2475 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/perftest.py | 47 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/perftest.py | 49 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/perftest.py | 229 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/perftest.py | 231 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/perftest.py | 322 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/perftest.py | 324 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/perftest.py | 390 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/perftest.py | 392 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | testsuite/pseudo-paths_test.py | 168 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | testsuite/pseudo-paths_test.py | 170 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | testsuite/pseudo-paths_test.py | 192 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | testsuite/pseudo-paths_test.py | 194 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | testsuite/pseudo-paths_test.py | 325 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | testsuite/pseudo-paths_test.py | 327 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/pseudo-paths_test.py | 52 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/pseudo-paths_test.py | 54 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/pseudo-paths_test.py | 90 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/pseudo-paths_test.py | 92 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/pseudo-paths_test.py | 146 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/pseudo-paths_test.py | 148 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/pseudo-paths_test.py | 228 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/pseudo-paths_test.py | 230 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/pseudo-paths_test.py | 300 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/pseudo-paths_test.py | 302 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/log-file-symlink_test.py | 69 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/log-file-symlink_test.py | 71 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/log-file-symlink_test.py | 97 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/log-file-symlink_test.py | 99 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/ki72-safe-links-backup_test.py | 60 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/ki72-safe-links-backup_test.py | 62 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/ki72-safe-links-backup_test.py | 81 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/ki72-safe-links-backup_test.py | 84 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/ki72-safe-links-backup_test.py | 99 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/ki72-safe-links-backup_test.py | 103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/hashsearch-dup-chain_test.py | 70 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/hashsearch-dup-chain_test.py | 72 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/hashsearch-dup-chain_test.py | 101 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/hashsearch-dup-chain_test.py | 103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/hashsearch-dup-chain_test.py | 133 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/hashsearch-dup-chain_test.py | 135 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/hashsearch-dup-chain_test.py | 173 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/hashsearch-dup-chain_test.py | 175 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/excludefrom-symlink_test.py | 83 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testsuite/excludefrom-symlink_test.py | 85 | # --------------------------------------------------------------------------- | COMMENT |
| 48 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | errcode.h | 21 | /* If you change these, please also update the string mappings in log.c and | COMMENT |
| LOW | errcode.h | 61 | #define RERR_CMD_FAILED 124 | COMMENT |
| LOW | version.h | 1 | #define RSYNC_VERSION "3.5.1" | COMMENT |
| LOW | loadparm.c | 101 | #endif | COMMENT |
| LOW | loadparm.c | 121 | { LOG_MAIL, "mail" }, | COMMENT |
| LOW | loadparm.c | 141 | #ifdef LOG_LOCAL1 | COMMENT |
| LOW | io.c | 201 | #define IOBUF_RESTORE_SIZE(siz) (((siz) | 0xFF) + 1) | COMMENT |
| LOW | rsync.h | 21 | #define False 0 | COMMENT |
| LOW | rsync.h | 41 | /* a non-zero CHAR_OFFSET makes the rolling sum stronger, but is | COMMENT |
| LOW | rsync.h | 61 | #define XMIT_USER_NAME_FOLLOWS (1<<10) /* protocols 30 - now */ | COMMENT |
| LOW | rsync.h | 81 | #define FLAG_CONTENT_DIR (1<<2) /* sender/receiver/generator */ | COMMENT |
| LOW | rsync.h | 141 | * MAX_PROTOCOL_VERSION: either to allow new major-rev versions that | COMMENT |
| LOW | rsync.h | 201 | COMMENT | |
| LOW | rsync.h | 221 | COMMENT | |
| LOW | rsync.h | 241 | #define FNAMECMP_FUZZY 0x83 | COMMENT |
| LOW | rsync.h | 261 | #define ITEM_MISSING_DATA (1<<16) /* used by log_formatted() */ | COMMENT |
| LOW | rsync.h | 321 | /* For calling delete_item() and delete_dir_contents(). */ | COMMENT |
| LOW | rsync.h | 341 | COMMENT | |
| LOW | rsync.h | 361 | # include <stddef.h> | COMMENT |
| LOW | rsync.h | 381 | #endif | COMMENT |
| LOW | rsync.h | 401 | #ifdef HAVE_SYS_TIME_H | COMMENT |
| LOW | rsync.h | 421 | #define O_CLOEXEC 0 | COMMENT |
| LOW | rsync.h | 441 | #ifdef HAVE_CTYPE_H | COMMENT |
| LOW | rsync.h | 461 | #endif | COMMENT |
| LOW | rsync.h | 481 | #define ST_MTIME_NSEC st_mtim.tv_nsec | COMMENT |
| LOW | rsync.h | 501 | #endif | COMMENT |
| LOW | rsync.h | 521 | # define dirent direct | COMMENT |
| LOW | rsync.h | 541 | COMMENT | |
| LOW | rsync.h | 561 | #endif | COMMENT |
| LOW | rsync.h | 581 | #undef ICONV_OPTION | COMMENT |
| LOW | rsync.h | 601 | #endif | COMMENT |
| LOW | rsync.h | 621 | #endif | COMMENT |
| LOW | rsync.h | 641 | #endif | COMMENT |
| LOW | rsync.h | 661 | # define int32 short | COMMENT |
| LOW | rsync.h | 681 | #endif | COMMENT |
| LOW | rsync.h | 701 | #if SIZEOF_INT64_T == 8 | COMMENT |
| LOW | rsync.h | 721 | # define SIZEOF_INT64 SIZEOF_INT | COMMENT |
| LOW | rsync.h | 761 | #define MIN(a,b) ((a)<(b)?(a):(b)) | COMMENT |
| LOW | rsync.h | 781 | * and significantly more than an overly short MAXPATHLEN. */ | COMMENT |
| LOW | rsync.h | 801 | #define IN_LOOPBACKNET 127 | COMMENT |
| LOW | rsync.h | 821 | #define PREALLOCATE_NEEDS_TRUNCATE 1 | COMMENT |
| LOW | rsync.h | 881 | extern int xattrs_ndx; | COMMENT |
| LOW | rsync.h | 901 | COMMENT | |
| LOW | rsync.h | 921 | COMMENT | |
| LOW | rsync.h | 1041 | int status; /* first errno from read errors */ | COMMENT |
| LOW | rsync.h | 1061 | #define FILTRULE_PERDIR_MERGE (1<<11)/* merge-file is searched per-dir */ | COMMENT |
| LOW | rsync.h | 1141 | #define INIT_XBUF_STRLEN(xb, str) (xb).buf = (str), (xb).len = strlen((xb).buf), (xb).size = (size_t)-1, (xb).pos = 0 | COMMENT |
| LOW | rsync.h | 1161 | COMMENT | |
| LOW | rsync.h | 1181 | #include "lib/addrinfo.h" | COMMENT |
| LOW | rsync.h | 1221 | COMMENT | |
| LOW | rsync.h | 1261 | #define x_lstat(fn,fst,xst) do_lstat(fn,fst) | COMMENT |
| LOW | rsync.h | 1281 | int snprintf(char *str, size_t count, const char *fmt,...); | COMMENT |
| LOW | rsync.h | 1301 | #define do_readlink(path, buf, bufsiz) readlink(path, buf, bufsiz) | COMMENT |
| LOW | rsync.h | 1321 | #endif | COMMENT |
| LOW | rsync.h | 1341 | #endif | COMMENT |
| LOW | rsync.h | 1361 | #ifndef S_ISBLK | COMMENT |
| LOW | rsync.h | 1381 | #define S_ISFIFO(mode) (0) | COMMENT |
| LOW | rsync.h | 1461 | COMMENT | |
| LOW | rsync.h | 1481 | #endif | COMMENT |
| LOW | rsync.h | 1501 | #define INFO_NAME (INFO_MOUNT+1) | COMMENT |
| 248 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | testsuite/xrsync.py | 108 | c.push(files) | CODE |
| HIGH | testsuite/rsyncfns.py | 1108 | if (errno == ENOSYS || errno == EINVAL || errno == EOPNOTSUPP) | CODE |
| HIGH | testsuite/rsyncfns.py | 1138 | while (getppid() == parent && mono() < deadline) | CODE |
| HIGH | testsuite/append-abort-mid-write_test.py | 107 | for (i = 0; release && i < 6000 && access(release, F_OK) != 0; i++) | CODE |
| HIGH | testsuite/append-abort-mid-write_test.py | 121 | if (held || count < 65536 || !fd_is_target(fd)) | CODE |
| HIGH | testsuite/fake-super-backup-fifo-regression_test.py | 71 | return oldname && newname && strcmp(oldname, "victim") == 0 | CODE |
| HIGH | testsuite/pseudo-paths_test.py | 29 | [bash, '-c', 'echo "probe" > >(cat > /dev/null)'], | CODE |
| HIGH | testsuite/daemon-leaf-type-race-fchmod_test.py | 123 | int ok = fd >= 0 && write(fd, &byte, 1) == 1; | CODE |
| HIGH | testsuite/daemon-leaf-type-race-fchmod_test.py | 135 | int ok = fd >= 0 && read(fd, &byte, 1) == 1 && byte == 'D'; | CODE |
| HIGH | testsuite/daemon-leaf-type-race-fchmod_test.py | 152 | if (!ready || !done || send_ready(ready) < 0 || await_done(done) < 0) { | CODE |
| HIGH | testsuite/daemon-leaf-type-race-fchmod_test.py | 174 | if (!synchronizing && rc < 0 && (flags & O_DIRECTORY) && leaf | CODE |
| HIGH | …stsuite/partial-protected-regular-retry-policy_test.py | 75 | return wanted && fcntl(fd, F_GETPATH, path) == 0 | CODE |
| HIGH | …stsuite/partial-protected-regular-retry-policy_test.py | 83 | if (swapped && partial && held) { | CODE |
| HIGH | …stsuite/partial-protected-regular-retry-policy_test.py | 108 | if (!swapped && path && strcmp(path, "victim") == 0 | CODE |
| HIGH | …stsuite/partial-protected-regular-retry-policy_test.py | 111 | if (rename(partial, held) == 0 && symlink("secret", partial) == 0) { | CODE |
| HIGH | …stsuite/partial-protected-regular-retry-policy_test.py | 126 | if (swapped && fd >= 0 && path && strcmp(path, "victim") == 0 | CODE |
| HIGH | …stsuite/partial-protected-regular-retry-policy_test.py | 153 | if (!swapped && path && strstr(path, "pdir/victim") | CODE |
| HIGH | …stsuite/partial-protected-regular-retry-policy_test.py | 155 | if (rename(partial, held) == 0 && symlink("secret", partial) == 0) { | CODE |
| HIGH | …stsuite/partial-protected-regular-retry-policy_test.py | 171 | if (swapped && fd >= 0 && path && strstr(path, "pdir/victim") | CODE |
| HIGH | …stsuite/partial-protected-regular-retry-policy_test.py | 186 | if (rc == 0 && swapped && path && strcmp(path, "pdir") == 0 | CODE |
| HIGH | testsuite/partial-protected-regular-retry-linux_test.py | 126 | if (!wanted || fd < 0) | CODE |
| HIGH | testsuite/partial-protected-regular-retry-linux_test.py | 140 | if (swapped && partial && held) { | CODE |
| HIGH | testsuite/partial-protected-regular-retry-linux_test.py | 153 | if (partial && held && rename(partial, held) == 0 | CODE |
| HIGH | testsuite/partial-protected-regular-retry-linux_test.py | 178 | return path && strcmp(path, "victim") == 0 | CODE |
| HIGH | testsuite/partial-protected-regular-retry-linux_test.py | 199 | if (!swapped && is_victim_write(path, flags) && (flags & O_CREAT) | CODE |
| HIGH | testsuite/partial-protected-regular-retry-linux_test.py | 212 | if (swapped && fd >= 0 && is_victim_write(path, flags) | CODE |
| HIGH | testsuite/partial-protected-regular-retry-linux_test.py | 235 | if (!swapped && path && strstr(path, "pdir/victim") | CODE |
| HIGH | testsuite/partial-protected-regular-retry-linux_test.py | 247 | if (swapped && fd >= 0 && path && strstr(path, "pdir/victim") | CODE |
| HIGH | testsuite/partial-protected-regular-retry-linux_test.py | 304 | if (rc == 0 && swapped && path && strcmp(path, "pdir") == 0 | CODE |
| HIGH | testsuite/partial-protected-regular-retry-linux_test.py | 349 | if (rc == 0 && swapped && path && strcmp(path, "pdir") == 0 | CODE |
| HIGH | testsuite/proto-hlink-flag-oob_test.py | 57 | # daemon's stderr to /dev/null). The daemon inherits this env. | STRING |
| HIGH⚡ | testsuite/fleettest.py | 257 | # command execution (ssh for remote, local shell when ssh_host is null) | COMMENT |
| HIGH⚡ | testsuite/fleettest.py | 1053 | command -v taskkill >/dev/null 2>&1 || return 0 | CODE |
| HIGH⚡ | testsuite/fleettest.py | 1054 | command -v ps >/dev/null 2>&1 || return 0 | CODE |
| HIGH⚡ | testsuite/fleettest.py | 1055 | for p in $(pgrep -f "$1" 2>/dev/null); do | CODE |
| HIGH⚡ | testsuite/fleettest.py | 1061 | command -v pgrep >/dev/null 2>&1 || return 0 | CODE |
| HIGH⚡ | testsuite/fleettest.py | 1063 | [ "$before" -gt 0 ] 2>/dev/null || return 0 | CODE |
| HIGH⚡ | testsuite/fleettest.py | 1067 | if [ "$(pgrep -f "$2" 2>/dev/null | wc -l | tr -d ' ')" -gt 0 ] 2>/dev/null; then | CODE |
| HIGH⚡ | testsuite/fleettest.py | 1073 | [ "$killed" -gt 0 ] 2>/dev/null && echo "KILLED $killed stray $1(s)" | CODE |
| HIGH⚡ | testsuite/fleettest.py | 1074 | if [ "$after" -gt 0 ] 2>/dev/null; then | CODE |
| HIGH⚡ | testsuite/fleettest.py | 1084 | if rm -rf -- "$d" 2>/dev/null || sudo -n rm -rf -- "$d" 2>/dev/null; then | CODE |
| HIGH⚡ | testsuite/fleettest.py | 1084 | if rm -rf -- "$d" 2>/dev/null || sudo -n rm -rf -- "$d" 2>/dev/null; then | CODE |
| HIGH | testsuite/fleettest.py | 434 | f'{t.make} -j{t.pipe_jobs} check-progs || exit 5\n' | CODE |
| HIGH⚡ | testsuite/batch-file-symlink_test.py | 191 | # on every platform. A hardcoded makedev(1, 3) is only Linux's /dev/null; | COMMENT |
| HIGH | testsuite/ki62-io-error-mask_test.py | 5 | # Without masking, a malicious peer could set arbitrary (undefined) bits, which | COMMENT |
| HIGH | testsuite/pseudo-paths-daemon_test.py | 27 | probe_bash = subprocess.run([bash, '-c', 'echo "probe" > >(cat > /dev/null)'], env=bash_env, capture_output=True) | CODE |
| HIGH | testsuite/source-change-size-continues_test.py | 109 | if (truncate(target_path, 0) == 0 && mark && *mark) { | CODE |
| HIGH | testsuite/link-dest-symlink-enotsup_test.py | 73 | if (e && strcmp(e, "EPERM") == 0) | CODE |
| HIGH | testsuite/link-dest-symlink-enotsup_test.py | 75 | if (e && strcmp(e, "ENOSYS") == 0) | CODE |
| HIGH | testsuite/daemon-chroot-munge-default_test.py | 15 | munge_symlinks default = !use_chroot || module_dirlen | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | testsuite/match-want-i-nolen_test.py | 0 | \ pid file = {scratchdir}/readargs-rsyncd.pid use chroot = no [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/match-append-empty-nullmap_test.py | 0 | \ pid file = {scratchdir}/readargs-rsyncd.pid use chroot = no [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/io-noop-flood-recursion_test.py | 0 | \ pid file = {scratchdir}/readargs-rsyncd.pid use chroot = no [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/proto-hlink-flag-oob_test.py | 0 | \ pid file = {scratchdir}/readargs-rsyncd.pid use chroot = no [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/io-readargs-argv-nullwrite_test.py | 0 | \ pid file = {scratchdir}/readargs-rsyncd.pid use chroot = no [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/daemon-deny-dns-failopen_test.py | 0 | return rsync's exit code for listing the module over the daemon. | STRING |
| HIGH | testsuite/daemon-access-idn_test.py | 0 | return rsync's exit code for listing the module over the daemon. | STRING |
| HIGH | testsuite/daemon-access-ip_test.py | 0 | return rsync's exit code for listing the module over the daemon. | STRING |
| HIGH | testsuite/proto-cleared-ndx_test.py | 0 | \ pid file = {scratchdir}/cd-rsyncd.pid use chroot = no log file = {log} [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/proto-parent-ndx-empty-dirflist_test.py | 0 | \ pid file = {scratchdir}/cd-rsyncd.pid use chroot = no log file = {log} [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/proto-sender-selftest_test.py | 0 | \ pid file = {scratchdir}/cd-rsyncd.pid use chroot = no log file = {log} [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/proto-msg-info-assert_test.py | 0 | \ pid file = {scratchdir}/cd-rsyncd.pid use chroot = no log file = {log} [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/proto-subflist-freed_test.py | 0 | \ pid file = {scratchdir}/cd-rsyncd.pid use chroot = no log file = {log} [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/proto-hlink-gnum_test.py | 0 | \ pid file = {scratchdir}/cd-rsyncd.pid use chroot = no log file = {log} [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/proto-cleared-dirflist_test.py | 0 | \ pid file = {scratchdir}/cd-rsyncd.pid use chroot = no log file = {log} [mod] path = {mod} read only = no | STRING |
| HIGH | testsuite/files-from-leak_test.py | 0 | reset the workspace. call only while the flipper is stopped. | STRING |
| HIGH | testsuite/filter-leak_test.py | 0 | reset the workspace. call only while the flipper is stopped. | STRING |
| HIGH | testsuite/operator-path-backup-symlink_test.py | 0 | reset the workspace. call only while the flipper is stopped. | STRING |
| HIGH | testsuite/operator-path-backup-rmdir_test.py | 0 | reset the workspace. call only while the flipper is stopped. | STRING |
| HIGH | testsuite/daemon-scan-cwd-desync_test.py | 0 | \ pid file = {base}/rsyncd.pid use chroot = no {ids} log file = {base}/rsyncd.log [m] path = {mod} read only = yes | STRING |
| HIGH | testsuite/daemon-copy-links-symlink_test.py | 0 | \ pid file = {base}/rsyncd.pid use chroot = no {ids} log file = {base}/rsyncd.log [m] path = {mod} read only = yes | STRING |
| HIGH | testsuite/daemon-scan-dir-escape_test.py | 0 | \ pid file = {base}/rsyncd.pid use chroot = no {ids} log file = {base}/rsyncd.log [m] path = {mod} read only = yes | STRING |
| HIGH | testsuite/daemon-subdir-climb-symlink_test.py | 0 | \ pid file = {base}/rsyncd.pid use chroot = no {ids} log file = {base}/rsyncd.log [m] path = {mod} read only = yes | STRING |
| HIGH | testsuite/README.md | 0 | \ pid file = {base}/rsyncd.pid use chroot = no {ids} log file = {base}/rsyncd.log [m] path = {mod} read only = yes | STRING |
| HIGH | testsuite/copy-dest-source-symlink_test.py | 0 | \ use chroot = no log file = {scratchdir}/rsyncd.log [upload] path = {mod} use chroot = no read only = no | STRING |
| HIGH | testsuite/acl-symlink-race_test.py | 0 | \ use chroot = no log file = {scratchdir}/rsyncd.log [upload] path = {mod} use chroot = no read only = no | STRING |
| HIGH | testsuite/sender-flist-symlink-leak_test.py | 0 | \ use chroot = no log file = {scratchdir}/rsyncd.log [upload] path = {mod} use chroot = no read only = no | STRING |
| HIGH | testsuite/alt-dest-symlink-race_test.py | 0 | \ use chroot = no log file = {scratchdir}/rsyncd.log [upload] path = {mod} use chroot = no read only = no | STRING |
| HIGH | testsuite/chdir-symlink-race_test.py | 0 | \ use chroot = no log file = {scratchdir}/rsyncd.log [upload] path = {mod} use chroot = no read only = no | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/release.py | 19 | CODE | |
| LOW | packaging/release.py | 24 | CODE | |
| LOW | packaging/release.py | 24 | CODE | |
| LOW | packaging/release.py | 24 | CODE | |
| LOW | testsuite/filter-depth_test.py | 11 | CODE | |
| LOW | testsuite/filter-depth_test.py | 13 | CODE | |
| LOW | testsuite/metadata-depth_test.py | 13 | CODE | |
| LOW | testsuite/exclude_test.py | 17 | CODE | |
| LOW | testsuite/exclude_test.py | 17 | CODE | |
| LOW | testsuite/exclude_test.py | 17 | CODE | |
| LOW | testsuite/exclude_test.py | 17 | CODE | |
| LOW | testsuite/ssh-basic_test.py | 14 | CODE | |
| LOW | testsuite/ssh-basic_test.py | 44 | CODE | |
| LOW | testsuite/ssh-basic_test.py | 44 | CODE | |
| LOW | testsuite/mutatefns.py | 16 | CODE | |
| LOW | testsuite/acls_test.py | 9 | CODE | |
| LOW | testsuite/hardlinks_test.py | 14 | CODE | |
| LOW | testsuite/hardlinks_test.py | 14 | CODE | |
| LOW | testsuite/files-from_test.py | 8 | CODE | |
| LOW | testsuite/files-from_test.py | 8 | CODE | |
| LOW | testsuite/files-from_test.py | 8 | CODE | |
| LOW | testsuite/daemon-refuse_test.py | 12 | CODE | |
| LOW | testsuite/devices-fake_test.py | 13 | CODE | |
| LOW | testsuite/devices-fake_test.py | 13 | CODE | |
| LOW | testsuite/devices-fake_test.py | 13 | CODE | |
| LOW | testsuite/devices-fake_test.py | 13 | CODE | |
| LOW | testsuite/devices-fake_test.py | 13 | CODE | |
| LOW | testsuite/rsyncfns.py | 18 | CODE | |
| LOW | testsuite/daemon-link-dest-escape_test.py | 22 | CODE | |
| LOW | testsuite/variety_test.py | 32 | CODE | |
| LOW | testsuite/missing_test.py | 12 | CODE | |
| LOW | testsuite/symlink-unix-perms_test.py | 6 | CODE | |
| LOW | testsuite/symlink-unix-perms_test.py | 8 | CODE | |
| LOW | testsuite/abdiff.py | 25 | CODE | |
| LOW | testsuite/reverse-daemon-delta_test.py | 26 | CODE | |
| LOW | testsuite/symlink-exclude-meta_test.py | 14 | CODE | |
| LOW | testsuite/rrsync-sender-parent-pin_test.py | 30 | CODE | |
| LOW | testsuite/write-touched-blocks_test.py | 4 | CODE | |
| LOW | testsuite/write-touched-blocks_test.py | 6 | CODE | |
| LOW | testsuite/dir-sgid_test.py | 9 | CODE | |
| LOW | …uite/operator-path-traversal-backup-dir-daemon_test.py | 8 | CODE | |
| LOW | testsuite/remote-shell-newline-escaping_test.py | 12 | CODE | |
| LOW | testsuite/recv-discard-nullderef_test.py | 34 | CODE | |
| LOW | testsuite/acls-depth_test.py | 10 | CODE | |
| LOW | testsuite/read-batch-pipe_test.py | 7 | CODE | |
| LOW | testsuite/deep-path_test.py | 17 | CODE | |
| LOW | testsuite/daemon-filter-merge-bypass_test.py | 47 | CODE | |
| LOW | testsuite/daemon-standalone-detach_test.py | 20 | CODE | |
| LOW | …tsuite/operator-path-traversal-dest-dir-daemon_test.py | 7 | CODE | |
| LOW | testsuite/daemon-leaf-type-race-fchmod_test.py | 15 | CODE | |
| LOW | testsuite/daemon-leaf-type-race-fchmod_test.py | 21 | CODE | |
| LOW | testsuite/filter-leak_test.py | 4 | CODE | |
| LOW | testsuite/variety-symlink-traversal_test.py | 23 | CODE | |
| LOW | testsuite/variety-symlink-traversal_test.py | 25 | CODE | |
| LOW | testsuite/chroot-link-dest-inner-module_test.py | 2 | CODE | |
| LOW | testsuite/symlink-dirlink-basis_test.py | 20 | CODE | |
| LOW | testsuite/symlink-dirlink-basis_test.py | 20 | CODE | |
| LOW | testsuite/symlink-dirlink-basis_test.py | 20 | CODE | |
| LOW | testsuite/clean-fname-underflow_test.py | 12 | CODE | |
| LOW | testsuite/daemon_test.py | 16 | CODE | |
| 43 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | testsuite/daemon-auth_test.py | 23 | # test harness cannot redirect, so it would hang `make coverage` (or any run | COMMENT |
| MEDIUM | testsuite/contimeout-rsh_test.py | 51 | # not keep the harness's captured-pipe open after rsync has already exited. | COMMENT |
| MEDIUM | testsuite/abdiff.py | 212 | # "is this file hardlinked at all" (link-dest / -H) -- a robust | COMMENT |
| MEDIUM | testsuite/rename-fullpath-symlink-race_test.py | 99 | # which is harness noise, not a write escape. | COMMENT |
| MEDIUM | testsuite/rrsync-symlink_test.py | 118 | # Patched rrsync: RSYNC → fake_rsync (via the shared, path-robust helper). | COMMENT |
| MEDIUM | testsuite/daemon-standalone-detach_test.py | 33 | # disconnected Windows process the harness can't reap, so it lingers as an orphan | COMMENT |
| MEDIUM | testsuite/ownership-depth_test.py | 10 | # Rerun under the fleet harness's non-root pass (testsuite/fleettest.py): the uid | COMMENT |
| MEDIUM | testsuite/daemon-leaf-type-race-fchmod_test.py | 72 | # Enter helper mode before importing the test harness, which requires runner | COMMENT |
| MEDIUM | testsuite/daemon-namecvt-empty-response_test.py | 53 | # Skips as root (see the my_uid==0 guard below), so the fleet harness reruns it | COMMENT |
| MEDIUM | testsuite/daemon-namecvt-empty-response_test.py | 79 | # for the fleet harness's non-root pass) or it will silently never run in CI. | COMMENT |
| MEDIUM | testsuite/daemon_test.py | 9 | # Rerun under the fleet harness's non-root pass (testsuite/fleettest.py): a | COMMENT |
| MEDIUM | …connect-prog-nested-singlequote-host-injection_test.py | 34 | # transfer until the harness timeout instead of failing fast. | COMMENT |
| MEDIUM | testsuite/fleettest.py | 130 | # Set from --repo in main() (default: cwd). The harness builds whatever rsync | COMMENT |
| MEDIUM | testsuite/daemon-auth-digest-floor_test.py | 44 | # /dev/tty and would hang the harness) -- see daemon-auth_test.py. | COMMENT |
| MEDIUM | .github/workflows/ubuntu-build.yml | 65 | # harness's nonroot_tests). | COMMENT |
| MEDIUM | .github/workflows/fleettest.yml | 7 | # Bitrot check for testsuite/fleettest.py (the developer fleet CI harness). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | testsuite/symlink-unix-perms_test.py | 27 | # Create a test directory and a test file in FROMDIR for use later as symlink | COMMENT |
| MEDIUM | testsuite/symlink-unix-perms_test.py | 75 | # Create a number of symlinks to use for testing rsync. | COMMENT |
| MEDIUM | testsuite/write-touched-blocks_test.py | 94 | # Create a file with written data on the ends, but a massive 4 MiB hole in the middle. | COMMENT |
| MEDIUM⚡ | testsuite/pseudo-paths_test.py | 178 | # Create the trusted nested symlink pointing to the kernel pipe | COMMENT |
| MEDIUM⚡ | testsuite/pseudo-paths_test.py | 200 | # Create a local, relative 'dev/fd' structure inside our working directory | COMMENT |
| MEDIUM⚡ | testsuite/pseudo-paths_test.py | 204 | # Create a real file called 'pipe:[' with valid data | COMMENT |
| MEDIUM⚡ | testsuite/pseudo-paths_test.py | 208 | # Create a symlink named '99' that points to the literal file 'pipe:[' | COMMENT |
| MEDIUM⚡ | testsuite/pseudo-paths_test.py | 337 | # Create the trusted nested symlink pointing to the kernel pipe | COMMENT |
| MEDIUM | testsuite/alt-dest_test.py | 33 | # Create a side dir with one identically-named candidate so copy_file()'s | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | runtests.py | 182 | CODE | |
| LOW | runtests.py | 270 | CODE | |
| LOW | runtests.py | 565 | CODE | |
| LOW | runtests.py | 661 | CODE | |
| LOW | packaging/pkglib.py | 26 | CODE | |
| LOW | packaging/pkglib.py | 174 | CODE | |
| LOW | packaging/pkglib.py | 209 | CODE | |
| LOW | packaging/release.py | 176 | CODE | |
| LOW | packaging/release.py | 293 | CODE | |
| LOW | testsuite/rsync_proto.py | 804 | CODE | |
| LOW | testsuite/rsync_proto.py | 857 | CODE | |
| LOW | testsuite/xrsync.py | 91 | CODE | |
| LOW | testsuite/rsyncfns.py | 1210 | CODE | |
| LOW | testsuite/rsyncfns.py | 1467 | CODE | |
| LOW | testsuite/rsyncfns.py | 2312 | CODE | |
| LOW | testsuite/rsyncfns.py | 2616 | CODE | |
| LOW | testsuite/rsyncfns.py | 2808 | CODE | |
| LOW | testsuite/rsyncfns.py | 2826 | CODE | |
| LOW | testsuite/files-from-leak_test.py | 102 | CODE | |
| LOW | testsuite/abdiff.py | 173 | CODE | |
| LOW | testsuite/abdiff.py | 1803 | CODE | |
| LOW | testsuite/abdiff.py | 2248 | CODE | |
| LOW | testsuite/abdiff.py | 2550 | CODE | |
| LOW | testsuite/abdiff.py | 2712 | CODE | |
| LOW | testsuite/perftest.py | 170 | CODE | |
| LOW | testsuite/perftest.py | 282 | CODE | |
| LOW | testsuite/perftest.py | 336 | CODE | |
| LOW | testsuite/perftest.py | 381 | CODE | |
| LOW | testsuite/perftest.py | 394 | CODE | |
| LOW | testsuite/rrsync-sender-leaf-flip_test.py | 76 | CODE | |
| LOW | testsuite/rrsync-pull-arg-shapes_test.py | 110 | CODE | |
| LOW | testsuite/filter-leak_test.py | 104 | CODE | |
| LOW | testsuite/fleettest.py | 329 | CODE | |
| LOW | testsuite/fleettest.py | 755 | CODE | |
| LOW | testsuite/fleettest.py | 1152 | CODE | |
| LOW | testsuite/early-input-symlink_test.py | 88 | CODE | |
| LOW | …licious-server-partial-basis-symlink-overwrite_test.py | 58 | CODE | |
| LOW | testsuite/daemon-stdin-unix-listener_test.py | 30 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | testsuite/rrsync-specials-denied_test.py | 166 | except Exception: | CODE |
| LOW | testsuite/mutatefns.py | 54 | except Exception as e: # noqa: BLE001 - report it | CODE |
| LOW | testsuite/rsyncfns.py | 893 | except Exception: | CODE |
| LOW | testsuite/checksum-zero-blocklen_test.py | 57 | except Exception as exc: # noqa: BLE001 - reported below | CODE |
| LOW | testsuite/peer-legacy-implied-delete-scope_test.py | 76 | except Exception as exc: # noqa: BLE001 | CODE |
| MEDIUM | testsuite/peer-legacy-implied-delete-scope_test.py | 44 | def serve(): | CODE |
| LOW | testsuite/symlink-unix-perms_test.py | 61 | except Exception as e: | CODE |
| MEDIUM | testsuite/abdiff.py | 2736 | def worker(s): | CODE |
| LOW | testsuite/abdiff.py | 2420 | except Exception as ex: | CODE |
| LOW | testsuite/abdiff.py | 2739 | except Exception as ex: # never let one scenario kill the pool | CODE |
| LOW | testsuite/mkvariety.py | 45 | except Exception: | CODE |
| LOW | testsuite/malicious-dot-file-delete-scope_test.py | 70 | except Exception as exc: # noqa: BLE001 - reported below | CODE |
| MEDIUM | testsuite/malicious-dot-file-delete-scope_test.py | 54 | def serve(): | CODE |
| LOW | testsuite/malicious-dot-dir-delete-scope_test.py | 73 | except Exception as exc: # noqa: BLE001 - reported below | CODE |
| MEDIUM | testsuite/malicious-dot-dir-delete-scope_test.py | 53 | def serve(): | CODE |
| LOW | testsuite/daemon-chroot_test.py | 45 | except Exception: | CODE |
| MEDIUM | testsuite/fleettest.py | 968 | def current_branch() -> str: | CODE |
| LOW⚡ | testsuite/fleettest.py | 973 | except Exception: | CODE |
| LOW | testsuite/fleettest.py | 1364 | except Exception as e: # never let one target kill the run | STRING |
| LOW | testsuite/fleettest.py | 1378 | except Exception as e: # a whole group died: account for each | STRING |
| LOW | testsuite/xattr-wire-cap_test.py | 72 | except Exception as exc: # noqa: BLE001 - reported below | CODE |
| LOW | testsuite/scanner-batch-flag-mismatch_test.py | 33 | except Exception as e: | CODE |
| LOW | testsuite/stdio_daemon.py | 50 | except Exception: | CODE |
| LOW | …uite/daemon-copylinks-parent-target-regression_test.py | 43 | except Exception as exc: # noqa: BLE001 - retain daemon stderr for the oracle | CODE |
| LOW | …licious-server-partial-basis-symlink-overwrite_test.py | 197 | except Exception as exc: # noqa: BLE001 | CODE |
| MEDIUM | …licious-server-partial-basis-symlink-overwrite_test.py | 58 | def serve(): | CODE |
| LOW | …stsuite/readonly-partial-abort-mode-regression_test.py | 97 | except Exception as exc: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | testsuite/rsyncfns.py | 2452 | def hardlink_symlinks_supported(where=None) -> bool: | STRING |
| LOW | testsuite/files-from-leak_test.py | 102 | def root_owned_backup_symlink(): | CODE |
| LOW | testsuite/rrsync-sender-parent-pin_test.py | 108 | def resolve_with_parent_swapped(source): | STRING |
| LOW | testsuite/macos-setgid-ordinary-mode-regression_test.py | 42 | def _scratch_with_ungrantable_group(): | CODE |
| LOW | testsuite/filter-leak_test.py | 104 | def root_owned_backup_symlink(): | CODE |
| LOW | testsuite/bare-do-open-symlink-race_test.py | 50 | def verify_outside_unchanged_or_absent(label: str, target: str) -> None: | CODE |
| LOW | testsuite/variety-symlink-traversal_test.py | 139 | def case_receiver_intermediate(): | CODE |
| LOW | …stsuite/readonly-partial-abort-mode-regression_test.py | 54 | def wait_for_generator_request(): | CODE |
| LOW | testsuite/hashsearch-collision-skip_test.py | 34 | def make_spread_colliding_block(delta: int, fill: int = C_BYTE) -> bytes: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | testsuite/write-touched-blocks_test.py | 153 | # Step 1: Generate the batch file (Sender side) | COMMENT |
| LOW⚡ | testsuite/write-touched-blocks_test.py | 160 | # Step 2: Apply the batch file and collect stats (Receiver side) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | testsuite/write-touched-blocks_test.py | 153 | # Step 1: Generate the batch file (Sender side) | COMMENT |
| LOW⚡ | testsuite/write-touched-blocks_test.py | 160 | # Step 2: Apply the batch file and collect stats (Receiver side) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/pkglib.py | 20 | # Set this to an encoding name or set it to None to avoid the default encoding idiom. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | testsuite/rsync_proto.py | 283 | CODE | |
| LOW | testsuite/abdiff.py | 548 | CODE |