Skip to content

fix(cli): save --mode argument before comparing to avoid argv advance#526

Open
somethingwithproof wants to merge 1 commit intoCacti:developfrom
somethingwithproof:fix/mode-argv-advance
Open

fix(cli): save --mode argument before comparing to avoid argv advance#526
somethingwithproof wants to merge 1 commit intoCacti:developfrom
somethingwithproof:fix/mode-argv-advance

Conversation

@somethingwithproof
Copy link
Copy Markdown
Contributor

getarg(opt, &argv) advances the argv pointer on each call. Three successive calls in the --mode handler consumed three argv entries instead of one, corrupting subsequent argument parsing when using the space-separated form (--mode online).

getarg(opt, &argv) advances the argv pointer on each call. Three
successive calls in the --mode handler consumed three argv entries
instead of one, corrupting subsequent argument parsing when using
the space-separated form (--mode online).

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Copilot AI review requested due to automatic review settings April 8, 2026 19:31
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes a command-line parsing bug in --mode handling where repeated getarg(opt, &argv) calls advanced argv multiple times, corrupting subsequent argument parsing for space-separated usage (e.g., --mode online).

Changes:

  • Capture the --mode argument value once into a local mode_arg variable.
  • Reuse mode_arg for all comparisons (online/offline/recovery) to avoid advancing argv multiple times.
  • Improve the invalid-mode error to report the actual provided mode value.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@somethingwithproof
Copy link
Copy Markdown
Contributor Author

Code-reviewed as part of a batch with #525-#531. These 7 atomic bug fixes are independent of each other and can be merged in any order; recommend bundling into a single dated release. The Windows/CMake work in #523/#524 should follow this batch, and #512 (production CI pipeline) should be split into smaller PRs before review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants