From beccb842f6e5cc31ddfc8b7b66d899809ad6c2b8 Mon Sep 17 00:00:00 2001 From: Bryce Kwon Date: Sat, 31 Oct 2026 19:26:21 -1000 Subject: Report a word where cgitrc expects a number atoi reads "yes" or "true" as 0, so repo.hide=yes, or cgit.hide true in a scanned repository's git config, silently did nothing. The values keep that meaning, since honouring them now would hide repositories on upgrade, but each one is logged with its file and line. --- source/cgit.c | 134 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 67 insertions(+), 67 deletions(-) (limited to 'source/cgit.c') diff --git a/source/cgit.c b/source/cgit.c index 17a79a2..180cd82 100644 --- a/source/cgit.c +++ b/source/cgit.c @@ -590,77 +590,77 @@ static void apply_config(const char *name, const char *value) else if (!strcmp(name, "virtual-root")) ctx.cfg.virtual_root = ensure_end(value, '/'); else if (!strcmp(name, "enable-plain-email")) - ctx.cfg.enable_plain_email = atoi(value); + ctx.cfg.enable_plain_email = config_int(name, value); else if (!strcmp(name, "enable-header")) - ctx.cfg.enable_header = atoi(value); + ctx.cfg.enable_header = config_int(name, value); else if (!strcmp(name, "snapshots")) ctx.cfg.snapshots = cgit_parse_snapshots_mask(value); else if (!strcmp(name, "trust-scan-config")) - ctx.cfg.trust_scan_config = atoi(value); + ctx.cfg.trust_scan_config = config_int(name, value); else if (!strcmp(name, "enable-follow-links")) - ctx.cfg.enable_follow_links = atoi(value); + ctx.cfg.enable_follow_links = config_int(name, value); else if (!strcmp(name, "enable-http-clone")) - ctx.cfg.enable_http_clone = atoi(value); + ctx.cfg.enable_http_clone = config_int(name, value); else if (!strcmp(name, "enable-index-links")) - ctx.cfg.enable_index_links = atoi(value); + ctx.cfg.enable_index_links = config_int(name, value); else if (!strcmp(name, "enable-index-owner")) - ctx.cfg.enable_index_owner = atoi(value); + ctx.cfg.enable_index_owner = config_int(name, value); else if (!strcmp(name, "enable-blame")) - ctx.cfg.enable_blame = atoi(value); + ctx.cfg.enable_blame = config_int(name, value); else if (!strcmp(name, "enable-commit-graph")) - ctx.cfg.enable_commit_graph = atoi(value); + ctx.cfg.enable_commit_graph = config_int(name, value); else if (!strcmp(name, "enable-gitmodules-links")) - ctx.cfg.enable_gitmodules_links = atoi(value); + ctx.cfg.enable_gitmodules_links = config_int(name, value); else if (!strcmp(name, "enable-log-filecount")) - ctx.cfg.enable_log_filecount = atoi(value); + ctx.cfg.enable_log_filecount = config_int(name, value); else if (!strcmp(name, "enable-log-linecount")) - ctx.cfg.enable_log_linecount = atoi(value); + ctx.cfg.enable_log_linecount = config_int(name, value); else if (!strcmp(name, "enable-mailmap")) - ctx.cfg.enable_mailmap = atoi(value); + ctx.cfg.enable_mailmap = config_int(name, value); else if (!strcmp(name, "enable-relative-dates")) - ctx.cfg.enable_relative_dates = atoi(value); + ctx.cfg.enable_relative_dates = config_int(name, value); else if (!strcmp(name, "enable-remote-branches")) - ctx.cfg.enable_remote_branches = atoi(value); + ctx.cfg.enable_remote_branches = config_int(name, value); else if (!strcmp(name, "enable-subject-links")) - ctx.cfg.enable_subject_links = atoi(value); + ctx.cfg.enable_subject_links = config_int(name, value); else if (!strcmp(name, "enable-commit-trailers")) - ctx.cfg.enable_commit_trailers = atoi(value); + ctx.cfg.enable_commit_trailers = config_int(name, value); else if (!strcmp(name, "enable-html-serving")) - ctx.cfg.enable_html_serving = atoi(value); + ctx.cfg.enable_html_serving = config_int(name, value); else if (!strcmp(name, "enable-tree-linenumbers")) - ctx.cfg.enable_tree_linenumbers = atoi(value); + ctx.cfg.enable_tree_linenumbers = config_int(name, value); else if (!strcmp(name, "enable-version-info")) - ctx.cfg.enable_version_info = atoi(value); + ctx.cfg.enable_version_info = config_int(name, value); else if (!strcmp(name, "enable-tree-group-dirs")) - ctx.cfg.enable_tree_group_dirs = atoi(value); + ctx.cfg.enable_tree_group_dirs = config_int(name, value); else if (!strcmp(name, "enable-git-config")) - ctx.cfg.enable_git_config = atoi(value); + ctx.cfg.enable_git_config = config_int(name, value); else if (!strcmp(name, "enable-cache-list")) - ctx.cfg.enable_cache_list = atoi(value); + ctx.cfg.enable_cache_list = config_int(name, value); else if (!strcmp(name, "max-stats")) ctx.cfg.max_stats = cgit_find_stats_period(value, NULL); else if (!strcmp(name, "cache-size")) - ctx.cfg.cache_size = atoi(value); + ctx.cfg.cache_size = config_int(name, value); else if (!strcmp(name, "cache-root")) ctx.cfg.cache_root = cgit_strdup_first_line(cgit_expand_macros(value)); else if (!strcmp(name, "cache-index-ttl")) - ctx.cfg.cache_index_ttl = atoi(value); + ctx.cfg.cache_index_ttl = config_int(name, value); else if (!strcmp(name, "cache-summary-ttl")) - ctx.cfg.cache_summary_ttl = atoi(value); + ctx.cfg.cache_summary_ttl = config_int(name, value); else if (!strcmp(name, "cache-scan-ttl")) - ctx.cfg.cache_scan_ttl = atoi(value); + ctx.cfg.cache_scan_ttl = config_int(name, value); else if (!strcmp(name, "cache-static-ttl")) - ctx.cfg.cache_static_ttl = atoi(value); + ctx.cfg.cache_static_ttl = config_int(name, value); else if (!strcmp(name, "cache-dynamic-ttl")) - ctx.cfg.cache_dynamic_ttl = atoi(value); + ctx.cfg.cache_dynamic_ttl = config_int(name, value); else if (!strcmp(name, "cache-about-ttl")) - ctx.cfg.cache_about_ttl = atoi(value); + ctx.cfg.cache_about_ttl = config_int(name, value); else if (!strcmp(name, "cache-snapshot-ttl")) - ctx.cfg.cache_snapshot_ttl = atoi(value); + ctx.cfg.cache_snapshot_ttl = config_int(name, value); else if (!strcmp(name, "cache-max-slot-size")) - ctx.cfg.cache_max_slot_size = atoi(value); + ctx.cfg.cache_max_slot_size = config_int(name, value); else if (!strcmp(name, "case-sensitive-sort")) - ctx.cfg.case_sensitive_sort = atoi(value); + ctx.cfg.case_sensitive_sort = config_int(name, value); else if (!strcmp(name, "about-filter")) ctx.cfg.about_filter = cgit_new_filter(value, ABOUT); else if (!strcmp(name, "commit-filter")) @@ -672,29 +672,29 @@ static void apply_config(const char *name, const char *value) else if (!strcmp(name, "auth-filter")) ctx.cfg.auth_filter = cgit_new_filter(value, AUTH); else if (!strcmp(name, "embedded")) - ctx.cfg.embedded = atoi(value); + ctx.cfg.embedded = config_int(name, value); else if (!strcmp(name, "max-atom-items")) - ctx.cfg.max_atom_items = atoi(value); + ctx.cfg.max_atom_items = config_int(name, value); else if (!strcmp(name, "max-message-length")) - ctx.cfg.max_msg_len = atoi(value); + ctx.cfg.max_msg_len = config_int(name, value); else if (!strcmp(name, "max-repodesc-length")) - ctx.cfg.max_repodesc_len = atoi(value); + ctx.cfg.max_repodesc_len = config_int(name, value); else if (!strcmp(name, "max-blob-size")) - ctx.cfg.max_blob_size = atoi(value); + ctx.cfg.max_blob_size = config_int(name, value); else if (!strcmp(name, "max-diff-files")) - ctx.cfg.max_diff_files = atoi(value); + ctx.cfg.max_diff_files = config_int(name, value); else if (!strcmp(name, "max-diff-lines")) - ctx.cfg.max_diff_lines = atoi(value); + ctx.cfg.max_diff_lines = config_int(name, value); else if (!strcmp(name, "max-ref-count")) - ctx.cfg.max_ref_count = atoi(value); + ctx.cfg.max_ref_count = config_int(name, value); else if (!strcmp(name, "max-repo-count")) { - ctx.cfg.max_repo_count = atoi(value); + ctx.cfg.max_repo_count = config_int(name, value); if (ctx.cfg.max_repo_count <= 0) ctx.cfg.max_repo_count = INT_MAX; } else if (!strcmp(name, "max-commit-count")) - ctx.cfg.max_commit_count = atoi(value); + ctx.cfg.max_commit_count = config_int(name, value); else if (!strcmp(name, "max-patch-count")) - ctx.cfg.max_patch_count = atoi(value); + ctx.cfg.max_patch_count = config_int(name, value); else if (!strcmp(name, "project-list")) ctx.cfg.project_list = cgit_strdup_first_line(cgit_expand_macros(value)); else if (!strcmp(name, "scan-path")) { @@ -706,31 +706,31 @@ static void apply_config(const char *name, const char *value) // it may have moved, and a repo key after it belongs to nothing. ctx.repo = NULL; } else if (!strcmp(name, "scan-hidden-path")) - ctx.cfg.scan_hidden_path = atoi(value); + ctx.cfg.scan_hidden_path = config_int(name, value); else if (!strcmp(name, "section-from-path")) - ctx.cfg.section_from_path = atoi(value); + ctx.cfg.section_from_path = config_int(name, value); else if (!strcmp(name, "repository-sort")) ctx.cfg.repository_sort = cgit_strdup_first_line(value); else if (!strcmp(name, "section-sort")) - ctx.cfg.section_sort = atoi(value); + ctx.cfg.section_sort = config_int(name, value); else if (!strcmp(name, "source-filter")) ctx.cfg.source_filter = cgit_new_filter(value, SOURCE); else if (!strcmp(name, "summary-log")) - ctx.cfg.summary_log = atoi(value); + ctx.cfg.summary_log = config_int(name, value); else if (!strcmp(name, "summary-branches")) - ctx.cfg.summary_branches = atoi(value); + ctx.cfg.summary_branches = config_int(name, value); else if (!strcmp(name, "summary-tags")) - ctx.cfg.summary_tags = atoi(value); + ctx.cfg.summary_tags = config_int(name, value); else if (!strcmp(name, "side-by-side-diffs")) - ctx.cfg.difftype = atoi(value) ? DIFF_SSDIFF : DIFF_UNIFIED; + ctx.cfg.difftype = config_int(name, value) ? DIFF_SSDIFF : DIFF_UNIFIED; else if (!strcmp(name, "age-file")) ctx.cfg.agefile = cgit_strdup_first_line(value); else if (!strcmp(name, "mimetype-file")) ctx.cfg.mimetype_file = cgit_strdup_first_line(value); else if (!strcmp(name, "rename-limit")) - ctx.cfg.renamelimit = atoi(value); + ctx.cfg.renamelimit = config_int(name, value); else if (!strcmp(name, "remove-suffix")) - ctx.cfg.remove_suffix = atoi(value); + ctx.cfg.remove_suffix = config_int(name, value); else if (!strcmp(name, "robots")) ctx.cfg.robots = cgit_strdup_first_line(value); else if (!strcmp(name, "clone-prefix")) @@ -738,7 +738,7 @@ static void apply_config(const char *name, const char *value) else if (!strcmp(name, "clone-url")) ctx.cfg.clone_url = cgit_strdup_first_line(value); else if (!strcmp(name, "local-time")) - ctx.cfg.local_time = atoi(value); + ctx.cfg.local_time = config_int(name, value); else if (!strcmp(name, "date-format")) parse_date_setting(value, &ctx.cfg.date_mode); else if (!strcmp(name, "commit-sort")) { @@ -1296,27 +1296,27 @@ void cgit_repo_config(struct cgit_repo *repo, const char *name, const char *valu else if (!strcmp(name, "snapshots")) repo->snapshots = ctx.cfg.snapshots & cgit_parse_snapshots_mask(value); else if (!strcmp(name, "enable-blame")) - repo->enable_blame = atoi(value); + repo->enable_blame = config_int(name, value); else if (!strcmp(name, "enable-commit-graph")) - repo->enable_commit_graph = atoi(value); + repo->enable_commit_graph = config_int(name, value); else if (!strcmp(name, "enable-follow-links")) - repo->enable_follow_links = atoi(value); + repo->enable_follow_links = config_int(name, value); else if (!strcmp(name, "enable-gitmodules-links")) - repo->enable_gitmodules_links = atoi(value); + repo->enable_gitmodules_links = config_int(name, value); else if (!strcmp(name, "enable-log-filecount")) - repo->enable_log_filecount = atoi(value); + repo->enable_log_filecount = config_int(name, value); else if (!strcmp(name, "enable-log-linecount")) - repo->enable_log_linecount = atoi(value); + repo->enable_log_linecount = config_int(name, value); else if (!strcmp(name, "enable-mailmap")) - repo->enable_mailmap = atoi(value); + repo->enable_mailmap = config_int(name, value); else if (!strcmp(name, "enable-remote-branches")) - repo->enable_remote_branches = atoi(value); + repo->enable_remote_branches = config_int(name, value); else if (!strcmp(name, "enable-subject-links")) - repo->enable_subject_links = atoi(value); + repo->enable_subject_links = config_int(name, value); else if (!strcmp(name, "enable-commit-trailers")) - repo->enable_commit_trailers = atoi(value); + repo->enable_commit_trailers = config_int(name, value); else if (!strcmp(name, "enable-html-serving")) - repo->enable_html_serving = atoi(value); + repo->enable_html_serving = config_int(name, value); else if (!strcmp(name, "branch-sort")) { if (!strcmp(value, "age")) repo->branch_sort = 1; @@ -1345,9 +1345,9 @@ void cgit_repo_config(struct cgit_repo *repo, const char *name, const char *valu else if (!strcmp(name, "logo-link")) repo->logo_link = cgit_strdup_first_line(value); else if (!strcmp(name, "hide")) - repo->hide = atoi(value); + repo->hide = config_int(name, value); else if (!strcmp(name, "ignore")) - repo->ignore = atoi(value); + repo->ignore = config_int(name, value); else if (!strcmp(name, "about-filter")) repo->about_filter = cgit_new_filter(value, ABOUT); else if (!strcmp(name, "commit-filter")) -- cgit 2.12.1