fix: config leak, compression log, inplace+partial-dir rejection, umask/root test fixes

This commit is contained in:
2026-09-21 21:59:58 +02:00
parent 338c27db73
commit b1eddf0133
7 changed files with 119 additions and 51 deletions
+6 -1
View File
@@ -578,13 +578,18 @@ static void test_parse_args_partial_dir_implies_partial() {
config_delete(cfg);
}
{
/* --inplace bypasses partial staging: the implication must not fire. */
/* --inplace bypasses partial staging, so parse_args must not set the
implied --partial; the combination itself is invalid (rsync parity:
"--inplace cannot be used with --partial-dir"), so validation rejects. */
Config* cfg = config_create();
char* argv[] = {"fastsync", "--inplace", "--partial-dir=.partial", "/src", "/dst"};
int positional_args[2];
int positional_count = 0;
EXPECT_EQ_INT(parse_args(cfg, 5, argv, positional_args, &positional_count), 0);
EXPECT_FALSE(cfg->partial);
cfg->send_directory = str_dup("/src");
cfg->receive_root_directory = str_dup("/dst");
EXPECT_FALSE(validate_config(cfg));
config_delete(cfg);
}
{